目前,我正在使用旧的mysql函数从PHP 5移植一个网站,因此我基本上从用新mysqli函数替换所有mysql函数开始,并立即消除了大部分问题。问题是,有一个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服务器版本相对应的手册,以便在第6行使用接近'LEFT ON tableC .idC = tableB.idC‘的右语法。
我想说的是,我没有创建这个网站,也不知道是谁做的,我只是负责将它移植到新版本的PHP。所以我不能确定这个查询是关于什么的,但是我不认为我会遇到这样的问题。而且,我不太熟悉这个OJ {}的写作,所以我不知道如何替换它,以防它是这里的问题。
发布于 2019-02-28 01:18:41
MariaDB的OPs修复方法是:
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来修正它,并简单地从tableA上写.-西蒙13分钟前
发布于 2019-02-28 01:08:25
https://stackoverflow.com/questions/54916663
复制相似问题