Конференция "Базы" » Траблы с LEFT JOIN [MySQL]
 
  • Шмелъ (16.04.08 10:44) [0]
    Столкнулся с проблемой следующего характера...
    переехали на новую 5-ю версию mysql и отвалились часть запросов, в частности запрос
    SELECT app.*, pt.*, es.name as 'pr.rad_engine_size'
    FROM application as app, part_type as pt
    LEFT JOIN engine_size as es ON app.engine_size_id=es.id
    WHERE app.part_type_id=pt.id

    стал выдавать: Unknown column 'app.engine_size_id' in 'on clause'
    раньше все работало ОК
    в чем причина, как решить эту проблему?
  • Ega23 © (16.04.08 10:46) [1]
    app.*, pt.*


    А если явно поля указать?
  • Шмелъ (16.04.08 10:51) [2]

    > А если явно поля указать?


    Пробовал, тоже самое...
  • Шмелъ (16.04.08 10:56) [3]
    А ну усе понял, криво написан запрос,

    SELECT app.*, pt.*, es.name as 'pr.rad_engine_size'
    FROM application as app
    LEFT JOIN engine_size as es ON app.engine_size_id=es.id
    , part_type as pt
    WHERE app.part_type_id=pt.id

    типа LEFT JOIN должен идти сразу за таблицей с которой связывается
  • Johnmen © (16.04.08 10:58) [4]
    Для начала использовать только явные соединения, а не мешать в кучу явные и неявные.
    Т.е.
    SELECT app.*, pt.*, es.name as 'pr.rad_engine_size'
    FROM application as app, part_type as pt
    JOIN part_type as pt ON app.part_type_id=pt.id
    LEFT JOIN engine_size as es ON app.engine_size_id=es.id

  • easy © (16.04.08 10:59) [5]
    SELECT app.*, pt.*, es.name as 'pr.rad_engine_size'
    FROM (application as app, part_type as pt)
    LEFT JOIN engine_size as es ON app.engine_size_id=es.id
    WHERE app.part_type_id=pt.id
 
Конференция "Базы" » Траблы с LEFT JOIN [MySQL]
Есть новые Нет новых   [134433   +21][b:0][p:0.001]