我在sql中遇到了一笔钱。我要做的是以下内容:
我有一个存储项目ID的表。这些id链接到另一个表'library',其中包含描述,名称和这些项的点。
现在我需要在库中抓取一些不同的项目并一起计算这些点的总和。
我希望我足够清楚。在我正在使用的查询下面:
"SELECT SUM(`points`) AS `total` FROM `library` WHERE `id` = '". $row2['lid'] ."'"
答案 0 :(得分:0)
可能的方法是:
"SELECT SUM(`points`) AS `total` FROM `library` WHERE `id` in (". $IDlist .")"
其中$IDList
是以逗号分隔的ID列表,例如"'1', '2', '3'"
。
如果这些是数字ID,则可以避免单引号,它们用于字符串。
答案 1 :(得分:0)
如果ID来自表格,则应使用join
,in
或exists
。类似的东西:
select sum(points) as total
from library l join
otheridtable oit
on l.id = oit.id;
您应该不将ID从数据库移动到应用程序层,只是将它们填充到字符串中并将它们发送回数据库。这是不优雅,效率低下,工作量超过必要的。