puta пишет:Единственное в чём остался вопрос - разница в использовании ON и s WHERE в данном конкретном случае?
Разница в том же, в чем и в любом другом случае.
Если вы пишете в WHERE сравнения с полями из той таблицы, которая приджойнивается внешним соединением, то запрос превращается во внутреннее соединение.
Перепишите свой запрос без группировки и без подсчета количества. И мой запрос тоже. И сравните результат.
У меня будет что-то типа
l.id....|....r.id....|....r.txt
-------|----------|--------
1.......|....1.......|.......str1
1...... |....1.......|....... str2
2.......|...NULL...|....NULL
У вас то же, только без последней строки. Потому что в where происходило сравнение с NULL значений из правой таблицы и они отбрасывались. А нам надо, чтобы если соотв.значения нет, то строка возвращалась, но с пустой правой часть - поэтому условие надо писать в ON.
|