我有桌子:
a
id, title, description
1, test , test
2, test , test
b
id, a_id, vw
1, 2, 4
我想创建查询来创建这个
来自 a 的ID ,来自 b 的SUM(vw),但是当 b没有a_id时必须显示 vw 0。
做一个左外连接,像这样:
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
在左外连接上放一个过滤器,或者你把它放在它是空的地方
第一个选项:
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
你在寻找这样的东西吗?
SELECT a.id, SUM(IF(b.a_id IS NULL, 0,b.vw))
FROM a,b
WHERE a.id = b.a_id