Задавайте вопросы, мы ответим
Вы не зашли.
Имеется база student
В ней 4 таблицы: students, groups, marks, subjects.
students(idSt, FIO, idGr, birth)
groups(idGr, groupName)
marks(idSt, idSub, mark, markDate)
subject(idSub, NameSubject)
Нужно вывести группы, в которых все студенты по одному и тому же предмету получили 4.
SELECT DISTINCT g.groupname
FROM groups AS g JOIN students AS s ON s.idGr = g.idGr
WHERE
s.idst IN (SELECT m.idst
FROM marks AS m
WHERE
s.idSt = m.idSt AND
mark = 4
GROUP BY idSub, mark, idSt)
Я попробовал так, но не получается. Я только начинаю работать с MySQL, мне еще сложно, помогите, если кто может.
Отредактированно dbstudent (11.03.2010 21:22:15)
Неактивен
С такими именами студентов даже помогать не хочется
SELECT idGr, idSub, GROUP_CONCAT(DISTINCT mark) AS marks
FROM marks m JOIN students s USING (idSt)
GROUP BY 1,2
HAVING marks = '4';
Неактивен
Спасибо, а за базу извиняюсь. В следующий раз буду относиться с уважением.
Неактивен