簡體   English   中英

使用兩個表在MySQL中實現Count()和Group By()

[英]Implementing Count() and Group By() in MySQL using two Tables

我有兩個單獨的表tbl_nametbl_parent

這是我的數據庫的樣子:

tbl_name

member_id   first_name   last_name
    0          John        Doe
    1          Jane        Doe
    2          Julie       Doe
    3          Billy       Joe

tbl_parent

 member_id   parent_id
    0          Null
    1           0
    2           0
    3          Null

如您所見,tbl_name保存有關成員的數據,而tbl_parent用於定義tbl_name中每個記錄的關系。

tbl_parent中的parent_id僅引用了member_id,因此基於給定的表,John Doe是Jane Doe和Julie Doe的父母。

現在我要計算所有具有parent_id 0的人,

這是我的查詢,當它們沒有分隔在不同的表中時,它工作正常。

select *, count(parent_id) from tbl_parent group by parent_id

我遇到的困難是使用兩個表,但無法正確顯示

我希望輸出為:

member_id   first_name   last_name  child
    0          John         Doe       2
    1          Jane         Doe       0
    2          Julie        Doe       0
    3          Billy        Joe       0

嘗試這個:

SELECT tbl_name.*, COUNT(tbl_parent.member_id) AS child
FROM tab_name
LEFT JOIN tbl_parent ON tbl_name.member_id = tbl_parent.parent_id
GROUP BY tbl_name.member_id

您可以通過簡單地使用Left連接來實現:

嘗試這個:

SELECT c。*,COUNT(p.member_id)個子項來自tab_name c左聯接tbl_parent p ON c.member_id = p.parent_id GROUP BY c.member_id

請查看以下鏈接以獲取有關MySQL中的聯接的更多知識http://dev.mysql.com/doc/refman/5.0/en/left-join-optimization.html

嘗試這個

select n.*, count(parent_id) Child
from tbl_name n
left outer join tbl_parent p on n.member_id = p.parent_id
GROUP BY n.member_id, first_name, last_name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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