SQL запрос; поля суммы

Я застрял на сумму в sql. Я пытаюсь сделать следующее:

У меня есть таблица, в которой хранятся идентификаторы предметов. Эти идентификаторы связаны с другой таблицей «библиотека» с описанием, именами и точками этих элементов.

Теперь мне нужно взять несколько разных предметов в библиотеке и вычислить сумму этих очков вместе.

Я надеюсь, что я был достаточно ясен. Под запросом я использую:

"SELECT SUM(`points`) AS `total` FROM `library` WHERE `id` = '".    $row2['lid'] ."'"

0

Решение

Если идентификаторы приходят из таблицы, то вы должны использовать join, in, или же exists, Что-то вроде:

select sum(points) as total
from library l join
otheridtable oit
on l.id = oit.id;

Вам следует не переместите идентификаторы из базы данных на прикладной уровень, просто вставьте их в строку и отправьте обратно в базу данных. Это не элегантно, неэффективно и требует больше работы, чем необходимо.

0

Другие решения

Возможный способ сделать это:

"SELECT SUM(`points`) AS `total` FROM `library` WHERE `id` in (". $IDlist .")"

куда $IDList это список ваших идентификаторов через запятую, как, например, "'1', '2', '3'",

Если это числовые идентификаторы, вы можете избежать одинарных кавычек, они используются для строк.

0

По вопросам рекламы [email protected]