Heim  >  Fragen und Antworten  >  Hauptteil

Richtige Verwendung der COUNT-Funktion in MySQL

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 personalTisch

id  name
1   John Doe
2   Nian
3   Rijali

Das ist meine interview_scoreUhr

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_scoreTabelle

befinden
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粉203648742P粉203648742217 Tage vor360

Antworte allen(1)Ich werde antworten

  • P粉759451255

    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;

    Antwort
    0
  • StornierenAntwort