mysql - 城镇报告(订单数)

标签 mysql sql select report

我正在创建一个按城镇排序的报告。

SELECT S.city, count(*) as NumOfOrders
    FROM Shop as S
    LEFT JOIN orders O ON O.ShopID = S.ShopID
WHERE O.status = 4
Group by S.city

结果显示如下:

Town 1  |   53
Town 2  |   45
Town 3  |   64

它工作正常,但即使没有订单我也想显示所有城镇?

预期结果:

Town 1  |   53
Town 2  |   45
Town 3  |   64
Town 4  |   0
Town 5  |   0

我曾尝试将 LEFT JOIN 替换为 RIGHT JOIN,但这甚至不起作用。相同的结果。

最佳答案

您的过滤器排除了没有订单的那些。尝试将条件放入连接中,您应该没问题。

SELECT S.city, count(O.any_non_nullable_field) as NumOfOrders
    FROM Shop as S
    LEFT JOIN orders O ON (O.ShopID = S.ShopID AND O.status = 4)
Group by S.city

关于mysql - 城镇报告(订单数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6255206/

相关文章:

sql - Postgres 查询以查找所有从属表

SQL 使用不同条件两次使用相同字段

mysql:多索引建议

php - 使用 "OR"和 "AND"mysql php

mysql - 选择字段的不同第一个单词

mysql - SQL 新手 - 需要查询方面的帮助

java - 在 Struts2 select 标签中再添加一个选项字段

php - 根据其他两个选择框填写选择框 - jquery

php - phpMyAdmin 和 php 中的不同结果

mysql - 重构 MySQL 字段中的字符串