Penggunaan fungsi COUNT yang betul dalam MySQL
P粉203648742
P粉203648742 2024-04-04 13:50:47
0
1
377

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粉203648742
P粉203648742

membalas semua(1)
P粉759451255

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;
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan