Heim > Fragen und Antworten > Hauptteil
Ich habe 2 Tische und das ist meine Geige http://sqlfiddle.com/#!9/da5e4e/3
Im Grunde habe ich also zwei Tabellen mit den Namen „personal“ und „interview_score“, wobei personal.id = Interview_score.personal_id.
Angenommen, das ist mein personal
Tisch
id name 1 John Doe 2 Nian 3 Rijali
Das ist meine interview_score
Uhr
id personal_id aspect_id 1 1 1 2 1 2 3 1 3 4 2 1 5 2 2
In diesem Fall möchte ich diese Abfrage nur verwenden, um zu zählen, wie viele persönliche_IDs sich in meiner interview_score
Tabelle
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;
Aber es kommt so zurück
interviewed 0 3 2
In der Zwischenzeit ist mein erwartetes Ergebnis dieses
interviewed 2
Weil es in dieser Tabelle zwei persönliche IDs gibt, die auf dieser Bedingung basieren.
Was habe ich falsch gemacht?
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;