微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从MySQL到MariaDB的mysql查询问题

我目前正在使用旧的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] 举报,一经查实,本站将立刻删除。

相关推荐