我有表:JOIN 2个表MySQL查询
a
id, title, description
1, test , test
2, test , test
b
id, a_id, vw
1, 2, 4
,我想创建查询以从创建此
ID ,SUM(vw) from b,but when b does not have a_id must display vw 。
我有表:JOIN 2个表MySQL查询
a
id, title, description
1, test , test
2, test , test
b
id, a_id, vw
1, 2, 4
,我想创建查询以从创建此
ID ,SUM(vw) from b,but when b does not have a_id must display vw 。
做一个左外连接,就像这样:
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
你在找这样的事吗?
SELECT a.id, SUM(IF(b.a_id IS NULL, 0,b.vw))
FROM a,b
WHERE a.id = b.a_id
询问代码**的问题必须证明对所解决问题的最小理解**。包括尝试解决方案,为什么他们没有工作,以及预期的结果。另见:[Stack Overflow question checklist](http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist) – Kermit