我有一些 SQL 曾经用于较旧的 MySQL 版本,但在升级到较新的 MySQL 5 版本后,出现错误。这是 SQL:
SELECT portfolio.*, projects.*, types.*
FROM projects, types
LEFT JOIN portfolio
ON portfolio.pfProjectID = projects.projectID
WHERE projects.projectType = types.typeID AND types.typeID = #URL.a#
ORDER BY types.typeSort, projects.projectPriority ASC
以及我收到的新错误:
Unknown column 'projects.projectID' in 'on clause'
如何将其转换为适用于较新 MySQL 版本的兼容 SQL?
非常感谢!
最佳答案
您编写查询的方式,编译器认为您想要将 portfolio
加入 types
,因此它会提示您的 on
子句引用 projects
表。
试试这个 ANSI 风格的版本:
SELECT *
FROM projects p
inner join types t on p.projectType = t.typeID AND t.typeID = #URL.a#
LEFT JOIN portfolio pf ON pf.pfProjectID = p.projectID
ORDER BY t.typeSort, p.projectPriority
关于sql - MySQL 左连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2668806/