当我在查询中添加位置时,现在显示计数为0

时间:2018-12-16 21:31:56

标签: mysql phpmyadmin

我在添加where子句时查询没有显示COUNT 0的问题。

我有两个表“ Parking”和“ Active_Parking”。我想每个COUNT得到id_parkingdatetime_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

1 个答案:

答案 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'
)

那么您应该有适当数量的活动停车位。

相关问题