Mysql

以特定方式連接 2 表和值

  • July 3, 2018

我有 2 個表,一個是主表,另一個是子表,現在我想編寫一個查詢,以便顯示來自主表的所有值以及來自子表的特定父 ID 行的計數(如果存在),否則它應該顯示 0。

這是我的主桌

在此處輸入圖像描述

這是我的孩子桌

在此處輸入圖像描述

我試過這個:

SELECT name, COUNT(*) 
from Activity LEFT JOIN Notifications on Notifications.ActId = Activity.ActId 
GROUP BY name

我得到的輸出是

在此處輸入圖像描述

您需要更改它,COUNT()以便它只計運算元記錄(並不總是主記錄)。

SELECT Activity.name, COUNT(Notifications.ActId) 
from Activity 
LEFT JOIN Notifications on Notifications.ActId = Activity.ActId 
GROUP BY Activity.name

COUNT()不會計算NULL值(來自您的LEFT JOIN),因此您只會以Notifications這種方式計算表中的記錄。

引用自:https://dba.stackexchange.com/questions/211242