我有 2 張桌子,這是我的小提琴 http://sqlfiddle.com/#!9/da5e4e/3
所以基本上我有2張表,分別稱為personal和interview_score,其中personal.id = Interview_score.personal_id。
假設這是我的 personal
表
id name 1 John Doe 2 Nian 3 Rijali
這是我的 interview_score
表
id personal_id aspect_id 1 1 1 2 1 2 3 1 3 4 2 1 5 2 2
在這種情況下,我只想使用此查詢計算我的 interview_score
表中有多少個personal_id
SELECT COUNT(i.id) as interviewed FROM personal p LEFT JOIN interview_score i ON i.personal_id = p.id GROUP BY i.personal_id;
但它回傳就像這樣
interviewed 0 3 2
同時,我的預期結果是這樣的
interviewed 2
因為在該表上有2個基於該條件的personal_id。
我錯在哪裡?
P粉7594512552024-04-05 13:08:43
您可以使用 join 而不是 left join,並且還需要按 p.id 進行分組
SELECT COUNT(i.id) as interviewed FROM personal p JOIN interview_score i ON i.personal_id = p.id GROUP BY p.id;
從上面的查詢你可以得到計數
取得特定人員的計數
SELECT COUNT(i.id) as interviewed FROM personal p JOIN interview_score i ON i.personal_id = p.id and p.id=1 GROUP BY p.id;