我正试图显示所有6辆卡车,并显示它们的停靠点数。该显示非常完美,除了其中有2辆卡车因为停靠数为0而未显示之外。
尝试了一个case语句,如果为ifnull,则没有运气。
-显示每辆卡车的信息及其停靠的次数。
SELECT
trucks.*,
COUNT(stops.st_id) AS Number_Of_Stops
FROM shipments
LEFT JOIN
trucks ON trucks.T_id = shipments.T_id
LEFT JOIN
stops ON shipments.Sh_id = stops.sh_id
GROUP BY
t_id;
提前谢谢
答案 0 :(得分:0)
您可以试试吗?我知道您的帖子说您尝试过IFNULL,但想确保以哪种方式应用它。另外,我主要是一名T-Sql开发人员,在那个世界上,我建议您的小组为trucks.t_id,这样我们可以确保t_id来自卡车表而不是例如发运表。
SELECT
trucks.*,
IFNULL(COUNT(stops.st_id),0) AS Number_Of_Stops
FROM shipments
LEFT JOIN
trucks ON trucks.T_id = shipments.T_id
LEFT JOIN
stops ON shipments.Sh_id = stops.sh_id
GROUP BY
t_id;
答案 1 :(得分:0)
使用该语法添加IFNULL不会发生任何变化。但是,将第一个联接更改为右联接确实可以解决问题。
我想了解为什么解决了这个问题,而不是很高兴解决了这个问题。我可以没有2个左连接,还是总是需要将其作为左/右内部/外部?我知道有一个包含不同联接的信息图-我将其保存以备将来使用。