如何显示被隐藏的行

时间:2019-01-23 18:11:20

标签: mysql

我正试图显示所有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;

提前谢谢

2 个答案:

答案 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个左连接,还是总是需要将其作为左/右内部/外部?我知道有一个包含不同联接的信息图-我将其保存以备将来使用。