我有2张桌子
Table: Users
userid (int, PK)
name (varchar)
type (enum)
Table: Sales
salesid (int)
productid (int)
userid (int, FK)
我需要输出
User Name Sales Count
ABC 5
BCD 0
EFG 1
我需要来自“用户”表的所有用户具有特定类型(如a,b,c)和销售数量(如果没有销售,则为0)
SELECT users.name
, count( sales.salesid )
FROM users
LEFT JOIN sales
ON users.userid = sales.userid
WHERE type = 'a'
以上查询的问题是,它只显示那些有销售的用户,我需要具有特定类型的所有用户,无论他们是否有销售
由于
答案 0 :(得分:2)
您是否错过了GROUP BY子句?对于大多数SQL方言,你需要它,并且在我正在使用的(通常相当老的)MySQL中,它必须存在,否则你会收到错误。只需在最后添加“GROUP BY users.name”,它就可以正常工作。
答案 1 :(得分:1)
尝试:
SELECT users.name, count( sales.salesid )
FROM users
LEFT JOIN sales
ON (users.userid = sales.userid AND type = 'a')