我在添加where子句时查询没有显示COUNT
0的问题。
我有两个表“ Parking”和“ Active_Parking”。我想每个COUNT
得到id_parking
为datetime_out
的{{1}}的有效停车位,然后将当前时间与>=
进行比较。
Parking | id_parking | parking_name | parking_location | parking_space | | -------------- | ------------ | ---------------- | ------------ | | 1 | ABC | 1st street | 35 | | 1 | ABC | 2nd street | 50 | | 1 | ABC | 3rd street | 150 | Active Parking | id_active_parking | id_parking | car_plates | datetime_IN | | ------------------- | ----------- | ---------- | -------------------- | | 1 | 1 | 00-XXX-00 | 2018-12-16 14:00:00 | | 2 | 1 | 00-XXX-00 | 2018-12-16 14:21:34 | | 3 | 2 | 00-XXX-00 | 2018-12-16 21:35:00 | | 4 | 2 | 00-XXX-00 | 2018-12-16 22:00:00 | | datetime_OUT | | -------------------- | | 2018-12-16 15:00:00 | | 2018-12-16 15:21:34 | | 2018-12-16 22:35:00 | | 2018-12-16 23:00:00 |
查询:
parking_space
查询结果:
| id_parking | COUNT(ap.id_parking) | | -------------- | -------------------- | | 2 | 2 |
没有显示SELECT
p.id_parking,
p.parking_name,
p.parking_location,
p.parking_space,
COUNT(ap.id_parking) AS Active
FROM
parking p
LEFT JOIN active_parking ap
ON ap.id_parking = p.id_parking
WHERE
ap.datetime_OUT >= '2018-12-16 22:16:00'
GROUP BY p.id_parking
1和3 id_parking
答案 0 :(得分:1)
在这种情况下使用LEFT JOIN的原因是什么?删除按+计数分组并检查结果。我相信您在这种情况下应该使用INNER JOIN。您可以了解许多地方的差异,包括wiki
如果您确实需要p.id_parking的所有列表,则应将WHERE子句移到ON:
LEFT JOIN active_parking ap ON (
ap.id_parking = p.id_parking
AND ap.datetime_OUT >= '2018-12-16 22:16:00'
)
那么您应该有适当数量的活动停车位。