我有桌子:
a
id, title, description
1, test , test
2, test , test
b
id, a_id, vw
1, 2, 4
我想创建查询来创建这个
来自b的 ID ,来自b的 SUM(vw),但是当b a_id 时必须显示vw 0 。答案 0 :(得分:3)
执行左外连接,如下所示:
select a.id, sum(ifnull(b.vw, 0))
from a
left outer join b on a.id = b.a_id
group by a.id
如果你想过滤B,请记住你有一个左外连接,所以,你有两个选择,你在左外连接的on
上放一个过滤器,或者你把它放在它的位置一个isnull
第一个选项:
select a.id, sum(ifnull(b.vw, 0))
from a
left outer join b on a.id = b.a_id and b.a_id = {id_user}
group by a.id
第二个选项:
select a.id, sum(ifnull(b.vw, 0))
from a
left outer join b on a.id = b.a_id
where isnull(b.a_id) = 1 or b.a_id = {id_user}
group by a.id
答案 1 :(得分:2)
你在找这样的东西吗?
SELECT a.id, SUM(IF(b.a_id IS NULL, 0,b.vw))
FROM a,b
WHERE a.id = b.a_id