Выборка знечений из одной таблицы, запись про которые нету в другой.

Falc

Новичок
Nime
lessons.ChapterID = '5' должен ко всем данным применятся
 

Nime

Guest
Необходимо сделать выборку еще и тех lessons.LessonNumber, про которые вообще нету записи в таблице statistics.
Формально, здесь про чаптер ничего не сказано... :)
 

Falc

Новичок
Nime
Это сказано в запросе, ты думаешь он его просто так добавил?
 

Nime

Guest
Falc :) Не спорю, именно оттуда и появляется двойная трактовка. Можно учитывать чаптер, подразумевая, что это имелось ввиду, а можно не учитывать. И только сам автор может сказать (и сказал уже), что ему нужно, так как в первом посте не было достаточно сведений.
 

Krisha

pain in the neck
Хватит спорить, идея в том, что есть chapter, у чаптера есть уроки, в таблице статискики хранятся записи о том, как driver проходит уроки, но, если драйвер урок пропустил, то есть просто скипану и не дал на него ответ, то статистика по этому уроку в таблице statistics не сохраняется, таким образом, чтобы получить список тех уроков, которые драйвер не прошел: Pased !=1 и тех уроков, которые драйвер скипанул нужно условие:

SELECT
lessons.LessonNumber
FROM
lessons
LEFT JOIN
statistics ON lessons.LessonID = statistics.LessonID AND statistics.DriverID = '".$_SESSION['DriverID']."'
WHERE
lessons.ChapterID = '".$_REQUEST['ChapterID']."'
AND (statistics.Passed != '1' OR statistics.LessonID IS NULL)
ORDER BY
lessons.LessonNumber

Так как в таблице lessons нету DriverID, то располагая условие statistics.DriverID = '".$_SESSION['DriverID']."' в WHERE я буду отсекать те лессоны, которые не представлены в таблице statistics, чтобы этого избежать это условие переносим в ON.
 

Nime

Guest
Krisha, всё верно. По этому поводу, собственно, разногласий и нет :)
 
Сверху