20:37

Я ушел в историю! Нет - в мифологию! А, плевать, куда ушел - туда ушел.
Пара слов про OUTER JOIN.

Хочешь наложить условия на сами переджойненные таблицы - пиши условие в ON, из WHERE они не работают.
Т.е., вот так писать правильно:


чтобы получить весь список person и null-значения в timetable.

И вот так писать неправильно:


Фильтрация выборки тоже пихается в ON. Я, кстати, не догоняю, что тогда можно написать в WHERE помимо t.id is null (если хотим исключить пересекающиеся id), чтобы оно при этом работало

@темы: А не попрогать ли нам?, Вести с полей

Комментарии
12.10.2014 в 20:50

Чудеса происходят лишь там, где их ждут.
А если ты джоинишь таблицы, то where почти и не нужен! Специально ж сделано, чтобы запросов к таблице меньше было, а where сведет эту пользу почти на нет
12.10.2014 в 22:47

Я ушел в историю! Нет - в мифологию! А, плевать, куда ушел - туда ушел.
Да, осознание снизошло) WHERE сразу сделает из лево-правых джойнов обычный INNER JOIN, where не нужны :D
13.10.2014 в 01:45

Я ушел в историю! Нет - в мифологию! А, плевать, куда ушел - туда ушел.
Не. WHERE нужен, если еще фильтрануть весь итоговый результат надо.
13.10.2014 в 07:36

Чудеса происходят лишь там, где их ждут.
Кото-кодер, не, ну это да, но это не 100500 условий)