我目前正在使用旧的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
错误说:
“Error Code: 1064. You have an error in your sql Syntax; check the manual that corresponds to your MariaDB server version for the right Syntax to use near ‘LEFT JOIN tableC ON tableC .idC = tableB.idC’ at line 6”
我想说我没有建立网站,也不知道是谁创建了网站,我只是负责将它移植到更新版本的PHP.所以我不能肯定地说这个查询是什么,但我不认为我会遇到这样的问题.
另外,我不熟悉这个OJ {}写作,所以我不确定如果它是这里的问题我怎么能取代它.
解决方法:
对MariaDB的OP修复是:
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
Ok I fixed it by removing the curly braces and OJ and writting simply FROM tableA …. – Simon 13 mins ago
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。