Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос MySQL / 6 сообщений из 6, страница 1 из 1
05.04.2014, 00:36:42
    #38605925
alex021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос MySQL
Доброго времени суток, проблема у меня с запросом.

Есть вот такие две таблицы. В таблице СourseStudent записан айди курса и айди студента записанного на этот курс. на один курс мб записано много студентов и один студент мб записан на несколько курсов.

хочу выбрать по айди студента такие курсы на которые он еще не записан.

CourseStudent
idCourseStudent(PK)course(FK)student(FK)
Course
idCourse(PK)courseName

Где CourseStudent.course - это FK , который является PK для таблицы Course.
а CourseStudent.student - это id студента из другой таблицы(думаю это не столь важно).
так вот мне необходимо выбрать из таблицы Course все idCourse на которые не записан студент.
Это у меня не получается)

А получается наоборот выбрать все курсы куда он записан вот такими запросами:
Код: sql
1.
SELECT Course.idCourse FROM Course, CourseStudent WHERE student ='какой-то айди' AND  CourseStudent.course=Course.idCourse ;


Код: sql
1.
SELECT Course.idCourse FROM Course JOIN CourseStudent ON ( CourseStudent.course=Course.idCourse )WHERE student ='какой-то айди' ;


выбирает "на ура", только вот мне надо обратное
как только добавляю "NOT" - выбирает белиберду
Код: sql
1.
SELECT Course.idCourse FROM Course, CourseStudent WHERE student ='какой-то айди' AND  NOT CourseStudent.course=Course.idCourse ;


Буду благодарен за любую помщь, тк в запросах к БД я плох(
Заранее спасибо!
...
Рейтинг: 0 / 0
05.04.2014, 00:50:43
    #38605931
MikkiMouse
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос MySQL
alex021,

... пишу в состоянии алкогольного опьянения:

Код: sql
1.
2.
3.
4.
5.
SELECT c.curs_id, c.curs_name
FROM cursStudent cs
LEFT JOIN curs c ON c.curs_id = cs.curs_id
WHERE cs.student = :someStudentId
AND cs.curs_id IS NULL



... Но это очень просто
...
Рейтинг: 0 / 0
05.04.2014, 00:57:35
    #38605935
MikkiMouse
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос MySQL
MikkiMouse,

Не, стоп...

Код: sql
1.
2.
3.
4.
5.
SELECT c.curs_name
FROM curs c
LEFT JOIN cursStudent cs ON c.curs_id = cs.curs_id
WHERE cs.student = :someStudentId
AND c.curs_id IS NULL
...
Рейтинг: 0 / 0
05.04.2014, 01:11:35
    #38605936
alex021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос MySQL
MikkiMouse,
эмм.. не тащит
почему в последней строке к NULL приравнивание идет? айдишник то не должен быть NULL
...
Рейтинг: 0 / 0
05.04.2014, 04:58:00
    #38605954
MikkiMouse
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос MySQL
alex021,

А, ну да сорри... Очень пьян был :)

Код: sql
1.
2.
3.
4.
SELECT c.curs_id, c.curs_name
FROM curs c
LEFT JOIN cursStudent cs ON (c.curs_id = cs.curs_id AND cs.student = :someStudentId)
WHERE cs.student IS NULL
...
Рейтинг: 0 / 0
05.04.2014, 11:27:23
    #38606010
alex021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос MySQL
MikkiMouse,
спасибо, действительно довольно таки просто
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Запрос MySQL / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]