sql - MySQL 左连接错误

标签 sql mysql mysql-error-1054

我有一些 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/

相关文章:

Mysql子查询问题

mysql - 对抗 INNER JOINS - Chapter : unknown column

java - Update 语句上的 SqlExceptions 问题

php - SugarCRM 安装卡住

java - 为什么 hibernate 在第 1 行抛出 "data truncation-data too long for coloumn ' a'?

mysql - 此查询中的错误是什么

sql - 避免在某些条件下返回结果集

sql - 如何在搜索中避免 & 和 %

sql - "Unfavourable"Postgres 和 PostGIS 的执行计划

mysql - 如何等待导入sql文件?