使用count时SQL查询返回0
我需要得到这样的查询:
| 姓名 | 数数 |
|---|---|
| 王 | 3 |
| 女王 | 1 |
| 单身的 | 0 |
回答
你有几个问题。首先,您需要LEFT JOIN从bedTypetoroom_bed确保您在输出结果中获得所有床位类型。其次,您不能LEFT JOIN在WHERE子句中对ed 表设置条件;否则,您将其转换LEFT JOIN为一个INNER JOIN(请参阅手册)。将您的查询更改为:
SELECT b.bedTypeName AS Name, COUNT(r.id) AS `Count`
FROM bedType b
LEFT JOIN room_bed r ON b.ID = r.bedTypeID AND r.roomID = 3
GROUP BY b.bedTypeName
输出:
Name Count
King 3
Queen 1
Single 0
db-fiddle 上的演示