Rumah  >  Soal Jawab  >  teks badan

Penggunaan fungsi COUNT yang betul dalam MySQL

Saya ada 2 meja dan ini biola saya http://sqlfiddle.com/#!9/da5e4e/3

Jadi secara asasnya saya ada 2 jadual yang dipanggil personal dan interview_score di mana personal.id = Interview_score.personal_id.

Andaikan ini personal meja saya

id  name
1   John Doe
2   Nian
3   Rijali

Ini adalah interview_score jam tangan

saya
id  personal_id aspect_id
1   1   1
2   1   2
3   1   3
4   2   1
5   2   2

Dalam kes ini saya hanya mahu menggunakan pertanyaan ini untuk mengira berapa banyak id_peribadi dalam interview_score jadual saya

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;

Tetapi ia kembali seperti ini

interviewed
0
3
2

Sementara itu, hasil jangkaan saya adalah ini

interviewed
2

Sebab terdapat 2 personal_id berdasarkan syarat ini di atas meja ini.

Di mana silap saya?

P粉203648742P粉203648742217 hari yang lalu361

membalas semua(1)saya akan balas

  • P粉759451255

    P粉7594512552024-04-05 13:08:43

    Anda boleh menggunakan join bukannya left join dan juga perlu group by 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;

    Daripada pertanyaan di atas anda boleh mendapatkan kiraan

    Dapatkan kiraan orang tertentu

    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;

    balas
    0
  • Batalbalas