LEFT加入中WHERE的重要性

时间:2015-11-18 17:56:50

标签: sql sql-server

我对StackOverflow很陌生,从来没有真正需要发布,但经过几个小时的研究,我不得不问。 我可以更改数据库,但我试图在这里找到解决方案。

所以我的数据库中有2个表,[Pracas] and [Motoristas_Praca]

当[Motoristas_Praca]为空时,View没有返回任何内容,因为//Motoristas_Praca.PracaID =Pracas.PracaID

这是我的观点

SELECT Pracas.Zona, 
SUM(CASE WHEN Motoristas_Praca.PracaID=Pracas.PracaID THEN 1 ELSE 0 END) AS 'Ocupantes' 
FROM Motoristas_Praca, Pracas GROUP BY Pracas.Zona

[Pracas]有两个条目

我希望View返回,

Zona          Ocupantes 
--------     -------------
string1        0

string2        0

......当[Motoristas_Praca]为空时

对不好的帖子感到抱歉,但我需要你的帮助:)

1 个答案:

答案 0 :(得分:1)

您可以使用LEFT JOIN来获得所需的输出。

SELECT Pracas.Zona,
 SUM(CASE WHEN Motoristas_Praca.PracaID IS NULL THEN 0 ELSE 1 END) AS 'Ocupantes' 
FROM Pracas
LEFT JOIN Motoristas_Praca ON Motoristas_Praca.PracaID=Pracas.PracaID
GROUP BY Pracas.Zona

希望这有帮助。