左连接未显示所有左表值

Mic*_*son 6 sql join left-join

LEFT JOIN应显示左表中的所有行,但是在运行以下查询时,我只获取位数为1或更多的位置值.请有人给我一些关于我可能出错的地方的指导:

SELECT places.placeId,
       placeName,
       COUNT(orderId) AS orderCount
FROM   places
       LEFT JOIN orders
         ON places.placeId = orders.placeId
WHERE  places.companyId = 1
       AND stateId = 1
       AND orderstateId = 1
       AND orderName NOT LIKE 'Delivery%'
GROUP  BY places.placeId,
          places.placeName
ORDER  BY orderCount DESC,
          placeName ASC 
Run Code Online (Sandbox Code Playgroud)

提前致谢

Mar*_*ith 18

你的WHERE情况会将OUTER JOIN背部转换为INNER JOIN.

不匹配的行将包含NULL所有orders列,并由WHERE子句删除.试试这个.

SELECT places.placeId,
       placeName,
       COUNT(orderId) AS orderCount
FROM   places
       LEFT JOIN orders
         ON places.placeId = orders.placeId
       AND orders.stateId = 1
       AND orders.orderstateId = 1
       AND orders.orderName NOT LIKE 'Delivery%'
WHERE  places.companyId = 1
GROUP  BY places.placeId,
          places.placeName
ORDER  BY orderCount DESC,
          placeName ASC 
Run Code Online (Sandbox Code Playgroud)