Иногда полезно посещать лекции по ИТ в нашем же Технопарке от наших профи. Несмотря на то, что я давно уже не занимаюсь программированием и базами данных, есть вопросы, рушащие сложившуюся картину мира. Вот один из них – годовой давности, на который я вчера получил ответ: почему select * from a,b,c,d left join e on (a.f=e.f) не то же самое, что select * from a join b join c join d left join e on (a.f=e.f). Причем запрос работал в прежних версиях MySQL (первый), а теперь – выдает ошибку.
Ошибка исправляется переносом таблицы a в перечислении на место после d. И не исправляется только заменой перечисления на join-ы, если в on используется кроме a еще и, например, b или с.
Rauf Aliev Запрос выдает ошибку: ERROR 1054 (42S22) at line 1: Unknown column ‘TABLENAME.FIELDTYPE’ in ‘on clause’. Теперь делаемтак: cat query | perl -i -npe “s/from (.*?), (.*?), (.*?), (.*?) left join/from \1 join \2 join \3 join \4 left join/g” | mysql databasename. Выдает результат – все ОК. А вы знаете, френды-программисты?
