Проблема с запросом MySQL, идущим от MySQL к MariaDB - PullRequest
0 голосов
/ 28 февраля 2019

В настоящее время я портирую веб-сайт из PHP 5, используя старые функции mysql, поэтому я начал с замены всех функций mysql новыми функциями mysqli и сразу же избавился от большинства проблем.Дело в том, что есть запрос mysql, который больше не работает, и я не понимаю почему, вот как это выглядит:

    SELECT *
    FROM { 
      OJ `tableA`.`tableA`
      LEFT OUTER JOIN `tableB`.`tableB` ON `tableA`.`idA` = `tableB`.`idA`
    }
    LEFT JOIN tableC ON tableC.idC = tableB.idC
    LEFT JOIN tableD ON tableD.idD = tableC.idC
    WHERE something in ('tableA','tableB')
    ORDER BY column1, column2

Ошибка говорит:

"Код ошибки: 1064. У вас есть ошибка в синтаксисе SQL; обратитесь к руководству, соответствующему версии вашего сервера MariaDB, для правильного использования синтаксиса рядом с 'LEFT JOIN tableC ON tableC .idC = tableB.idC 'в строке 6 "

Я хочу сказать, что я не создал сайт, и я не знаю, кто его создал, я просто отвечаю за его перенос на более новую версию PHP.Так что я не могу точно сказать, о чем этот запрос, но я не думал, что столкнусь с такой проблемой.Кроме того, я не знаком с этим OJ {} написанием, поэтому я не уверен, как я мог бы заменить его в случае, если это было проблемой здесь.

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Исправлено OPS для MariaDB:

SELECT *
FROM tableA
LEFT OUTER JOIN tableB.tableB ON tableA.idA = tableB.idA
LEFT JOIN tableC ON tableC.idC = tableB.idC
LEFT JOIN tableD ON tableD.idD = tableC.idC
WHERE something in ('tableA','tableB')
ORDER BY column1, column2

Хорошо, я исправил это, удалив фигурные скобки и OJ и написав просто ИЗ таблицы A. .... - Саймон 13 минут назад

0 голосов
/ 28 февраля 2019

У парсера MariaDB , кажется, есть только один table_ref в фигурных скобках.

В руководстве MySQL , а также у парсера естьопределение границы.

Если вы хотите, чтобы MariaDB поддерживал более широкий формат, вы можете создать отчет об ошибке

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