【发布时间】:2016-08-19 16:03:18
【问题描述】:
我有两张桌子:
- 第一个表 (names) 包含不同的名称,所有名称仅包含一次。
- 第二张表 (people) 包含一些人的记录。此表中的所有名称(person 列)都包含在第一个表的 name 列中。
名字:
id name
--- -----
1 Linda
2 John
3 Mary
4 Charles
人:
id person
--- -----
1 John
2 Mary
3 Mary
4 Charles
5 Charles
6 Charles
SQL 小提琴:http://sqlfiddle.com/#!9/acaf4
我想列出人员表中名称值(包括零)的出现次数。
我使用了以下查询,但结果不包含零值:
SELECT person AS n,
COUNT(person) AS name_occurrence
FROM people
LEFT JOIN names ON people.person = names.name
GROUP BY person
ORDER BY name_occurrence ASC;
结果是:
n name_occurrence
------- ---------------
John 1
Mary 2
Charles 3
我想要的是:
n name_occurrence
------- ---------------
Linda 0
John 1
Mary 2
Charles 3
【问题讨论】:
标签: mysql