[英]Sql join, count references including zeros
我制作了一個簡單的數據庫,其中包含兩個表,“國家”和“人類”:
+------+---------+
| id | name |
+------+---------+
| 1 | Finland |
| 2 | Sweden |
| 3 | Norway |
| 4 | Denmark |
+------+---------+
+--------+----------+
| name | homeland |
+--------+----------+
| Liisa | 1 |
| Matti | 1 |
| Holger | 2 |
+--------+----------+
這個查詢表明沒有人住在挪威,但為什么它沒有提到丹麥?
select country.name, count(human.name)
from human
right join country on human.homeland = country.id
group by homeland;
+---------+-------------------+
| name | count(human.name) |
+---------+-------------------+
| Norway | 0 |
| Finland | 2 |
| Sweden | 1 |
+---------+-------------------+
我正在使用 MariaDB,但更喜歡適用於其他數據庫的解決方案。
您通常GROUP BY
與您相同的列SELECT
,除了那些 arguments 設置功能:
select country.name, count(human.name)
from country
left join human on human.homeland = country.id
group by country.name;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.