2015-02-09 3 views
0

Я застрял на сумме в 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

Спасибо большое, тоже делает смысл :) –

0

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

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

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

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

Смежные вопросы