[英]A SQL query to get info from multiple tables
好的,我是 SQL 的絕對初學者,我有一項任務要解決,但我被卡住了,所以我需要關於如何獲得所需結果的想法的幫助。
我有 2 個表 - 第一個是PARENTS
,具有以下數據:
ID Name Age
1 John 25
2 Peter 28
3 Anny 30
4 Jack 32
第二個表是CHILDRENS
,包含以下數據:
children_id parent_id name age
1 1 mary 5
2 1 Susanne 4
3 2 stephen 12
4 4 Kevin 7
可以使用什么 SQL 命令得到以下結果:
id parent name number of childrens
1 John 2
2 Peter 1
3 Anny 0
4 Jack 1
提前致謝!
像這樣嘗試
select PARENTS.id,PARENTS.name,count(CHILDRENS.name)
from PARENTS left join CHILDRENS on PARENTS.id=CHILDRENS.parent_id
group by PARENTS.id,PARENTS.name
正如 Jarlh 在評論中提到的,使用LEFT OUTER JOIN
+ Group by
SELECT p.id,
p.name,
Count(parent_id) as number_of_childrens
FROM PARENTS p
LEFT OUTER JOIN CHILDRENS c
ON c.parent_id = p.ID
Group by p.id,
p.name
select p.id, p.name, count(p.id) as number_of_childrens
from parents p
left join childrens c
on p.parent_id = c.parent_id
group by p.id, p.name
SELECT A.ID
, A.name AS parent_name
, COUNT(B.children_id) AS number_of_children
FROM PARENTS AS A
LEFT JOIN CHILDRENS AS B
ON A.ID = B.parent_id
GROUP BY A.ID
, A.name
左連接,計數和分組依據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.