0

私は3つのテーブルを持っています:

student (id, name)
discipline (id, name)
student_discipline (stud_id, disc_id, mark)

学生が5つ以上の異なる分野を持っている学生からすべてを選択する必要がありますmark > 4

私はこのSQLを持っています:

SELECT * FROM `student_discipline` a
LEFT JOIN `discipline` b ON a.disc_id = b.id
LEFT JOIN `student` c ON a.stud_id = c.id
WHERE a.mark > 4
GROUP BY c.id
HAVING COUNT(b.id) >= 5

このSQLは、5つ以上の分野を昇格させたすべての学生を取得しますが、2回同じであってもすべての分野を取得します。個別の分野の値を取得する必要があります。どうやってやるの?

4

2 に答える 2

0
SELECT DISTINCT  c.id, c.name
FROM `student_discipline` a
LEFT JOIN `discipline` b ON a.disc_id = b.id
LEFT JOIN `student` c ON a.stud_id = c.id
WHERE a.mark > 4
GROUP BY c.id
HAVING COUNT(distinct b.id) >= 5
于 2013-06-28T15:20:05.490 に答える