MySQL запрос не работает в другой версии - PullRequest
0 голосов
/ 04 мая 2018

Приведенный ниже запрос работает в MySQL (Ver.4.1.22), но тот же запрос выдает ошибку в более новой версии (5.5.56-MariaDB). Может кто-нибудь, пожалуйста, помогите мне в этом.

SELECT 
                    c3.label_id
                FROM 
                    label_based_costs c3, label_based_text s3, platform o3, basic b3, 
                    series r3
                    LEFT JOIN platform o2 ON o3.content_code = o2.content_code AND o2.year = '2018'
                    LEFT JOIN basic b2 ON b3.bs_code = b2.bs_code AND b2.year = '2018'

Сообщение об ошибке:

Error in query (1054): Unknown column 'o3.content_code ' in 'on clause' 

1 Ответ

0 голосов
/ 04 мая 2018

Это потому, что вы смешиваете EXPLICIT и IMPLICIT Синтаксис соединения .

Неявный синтаксис объединения устарел, и вы должны прекратить его использование.

Смешивание обоих синтаксисов в одном и том же запросе даже хуже и вызывает ошибки, подобные этой, в последних версиях MySQL (версия 4 очень старая в настоящее время ...).

Ваш запрос должен быть

SELECT 
    c3.label_id
FROM 
    label_based_costs c3
    CROSS JOIN label_based_text s3
    CROSS JOIN platform o3
    CROSS JOIN basic b3
    CROSS JOIN series r3
    LEFT JOIN platform o2 ON o3.content_code = o2.content_code AND o2.year = '2018'
    LEFT JOIN basic b2 ON b3.bs_code = b2.bs_code AND b2.year = '2018'

С другой стороны, все эти CROSS JOIN являются подозрительными, потому что вы создаете огромный декартово произведение из 5 таблиц, и его, вероятно, необходимо просмотреть

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...