Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2019, 17:07   #1
ADITTI
 
Регистрация: 23.02.2019
Сообщений: 4
По умолчанию sql

Подскажите, пожалуйста, есть 3 таблицы:
Students(id, surname)
Exam_marks(id, student_id, subj_id)
subjects(id, name)
нужно вывести фамилии всех студентов у кого только двойки и тех у кого нет оценок(им поставить прочерки) в виде
surname, name, mark
Я делаю так
Код:
SELECT
	S.SURNAME
	, SUB.NAME
	, EM.MARK
	FROM STUDENTS AS S
	INNER JOIN  EXAM_MARKS AS EM ON EM.STUDENT_ID = S.ID 
	INNER JOIN SUBJECTS AS SUB ON SUB.ID = EM.SUBJ_ID
	WHERE EM.MARK = 2
Пожалуйста, оформляйте Ваш код согласно правилам.
но это показывает студентов которые не только получили двойку, но и другие оценки, а мне нужно получить только двойки и тех кто вообще не сдавал

Последний раз редактировалось Вадим Мошев; 23.02.2019 в 20:24.
ADITTI вне форума Ответить с цитированием
Старый 23.02.2019, 19:51   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

студенты имеющие ТОЛЬКО двойки === студенты НЕ имеющие других оценок

1. студенты имеющие оценки отличные от двоек
Код:
select distinct ...
from exam_marks 
inner join subjects on ...
where ....
2.
Код:
select ...
from studens 
where id not in ( --студенты имеющие оценки отличные от ...
                     ..... )
или так
Код:
select ....
from students
LEFT join ( select .... ---имеющие тройки ) as m3 on ....
LEFT join (.... ) as m4 on ....
LEFT join (.... ) as m5 on ...
where m3.studentd_id is NULL --нет троек
   and m4.studentd_id is NULL  ....
   ....
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 23.02.2019 в 19:54.
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск