簡體   English   中英

從多個表中獲取信息的 SQL 查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM