У меня проблема с поиском в нескольких таблицах
У меня есть 2 таблицы
tblcourse
-courseid
-name
-status
tblenroll
-курс (содержит Courseid из tblcourse)
-studentid
Допустим, у студента 1990 год как число студентов, и он зарегистрировался на 2 курса в tblenrol
Я хочу получить название курсов, которые были в 1990 году, и тех, на которые он не подписался
самое близкое, что я получаю, - это правильное внешнее соединение с tblcourses, тогда я получаю желаемый результат, но как только я присоединяю предложение where, оно не даст мне остальные курсы, у которых нет номера его студента.
Любая помощь !!
РЕДАКТИРОВАТЬ (добавлено из ответа, опубликованного оп)
Привет, спасибо за ответ. Хорошо, я не думаю, что объяснил это правильно.
tblcourse проведет много курсов
Tblenroll проводит много зачислений
Итак, представьте, у нас есть 6 курсов. Студент 1990 регистрируется на 3, а студент 1880 на 1 (тот, который 1990 не выбрал)
Когда мы запустим это:
WHERE (tblenroll.studentid = 1990 or tblenroll.studentid is null)
или
where e.studentid is null or e.studentid is not null and e.studentid = 1990
он подберет 5 курсов, 3 зарегистрированных до 1990 года и 2 NULLS. Шестой зарегистрирован в 1880 году.
Этот запрос приносит правильные результаты, но не для конкретного учащегося
SELECT
tblenroll.studentid as stud,
tblcourse.name,
tblenroll.studentid,
tblenroll.courseid,
tblcourse.courseid,
FROM
tblenroll
Right Join tblcourse ON tblenroll.courseid = tblcourse.courseid
С вышеизложенным я получу
1880 - 1
1990 - 3
NULL - 2
запутанные вещи!