我的数据库中有2个表,即Fleets和person_onboard_fleets。我正在尝试获取所有机队的清单(有效),并计算每个机队的人员数量(无效)。但是,如果没有人员在飞机上,则不会显示结果。
SELECT f.*, count(pof.ID) AS onboard
FROM fleets f, personnel_onboard_fleets pof
WHERE f.fleet_ID = pof.fleet_ID ORDER BY f.status
我预计会有2个结果,一个舰队有2人在船上,而一个舰队有0人在船上。但是我只得到一个结果。我尝试使用以下内容
SELECT f.*, IFNULL(COUNT(pof.ID), 0) AS onboard
FROM fleets f, personnel_onboard_fleets pof
WHERE f.fleet_ID = pof.fleet_ID ORDER BY f.status
我真的看不到查询出了什么问题,是否需要添加其他任何内容来显示载有0人的机队。
计数之前我最初的查询显示所有机队都很好,所以我知道这与计数有关。
这真让我抓狂!任何帮助将非常感激!!
最佳答案
尝试:
SELECT f.fleet_id,
Count(pof.id) AS onboard
FROM fleets f
LEFT JOIN personnel_onboard_fleets pof
ON f.fleet_id = pof.fleet_id
GROUP BY f.fleet_id
ORDER BY f.status;
关于mysql - COUNT个ifnull mysql查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16211064/