Unknown column 'table_name.id' in 'on clause'

DevConf 2017 - видео с конференции, успей до 17 июля | Проверенные VDS на SSD в Европе и России

Тема в разделе "PHP и базы данных", создана пользователем Royal Flash, 8 июн 2011.

  1. Royal Flash

    Royal Flash -=MaestrO=-

    Сообщения:
    462
    Ваш город:
    Киев
    Adress:
    Kiev, Ukraine
    Country:
    Location on Map:
    Здравствуйте.

    Решение проблемы нашел сам, но хотелось бы узнать, почему эта ошибка вообще появляется?

    Такой запрос

    SELECT tb1.content, tb2.content1, tb3.content3
    FROM tb1, tb2
    LEFT JOIN tb3 ON tb3.id_tb1 = tb1.id
    WERE ...

    вызывает ошибку: Unknown column 'tb1.id' in 'on clause'

    Если же присоединить tb2 с помощью LEFT JOIN:

    SELECT tb1.content, tb2.content1, tb3.content3
    FROM tb1
    LEFT JOIN tb2 ON tb2.id_tb1 = tb1.id
    LEFT JOIN tb3 ON tb3.id_tb1 = tb1.id
    WERE ...

    то все ок.

    По логике использовать LEFT JOIN мне не нужно, так как наличие данных в tbl2 обязательно.
     
  2. Вурдалак

    Вурдалак Newbie

    Сообщения:
    5.847
    Ваш город:
    Russia, Moscow
    Adress:
    Moscow, Russia
    Country:
    Location on Map:
  3. Royal Flash

    Royal Flash -=MaestrO=-

    Сообщения:
    462
    Ваш город:
    Киев
    Adress:
    Kiev, Ukraine
    Country:
    Location on Map:
    Огромное спасибо.

    Получается, что данных из присоединненной таблицы нет, к моменту запроса в LEFT JOIN, если присоединять через запятую?