我被困在一个总和在sql中。我想要做的是以下几点:sql查询;总和字段
我有一个存储项目的id的表。这些ID与另一个表“库”链接,并附有说明,名称和这些项目的要点。
现在我需要抓住库中的一些不同的项目,并计算这些点的总数。
我希望我已经够清楚了。下面的查询我使用的是:
"SELECT SUM(`points`) AS `total` FROM `library` WHERE `id` = '". $row2['lid'] ."'"
我被困在一个总和在sql中。我想要做的是以下几点:sql查询;总和字段
我有一个存储项目的id的表。这些ID与另一个表“库”链接,并附有说明,名称和这些项目的要点。
现在我需要抓住库中的一些不同的项目,并计算这些点的总数。
我希望我已经够清楚了。下面的查询我使用的是:
"SELECT SUM(`points`) AS `total` FROM `library` WHERE `id` = '". $row2['lid'] ."'"
如果ID来自表格,则应使用join
,in
或exists
。喜欢的东西:
select sum(points) as total
from library l join
otheridtable oit
on l.id = oit.id;
你应该不从数据库中移动IDS到应用层,只是将它们塞进一个字符串,并送他们回数据库。这是不雅,低效,更多的工作,而不是必要的。
一个可能的方式做到这一点是:
"SELECT SUM(`points`) AS `total` FROM `library` WHERE `id` in (". $IDlist .")"
哪里$IDList
是你的ID的逗号分隔的列表,例如像"'1', '2', '3'"
。
如果这些是数字ID,您可以避免单引号标记,它们用于字符串。
非常感谢,让sence也:) – 2015-02-09 11:36:59