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)
| 归档时间: |
|
| 查看次数: |
14861 次 |
| 最近记录: |