【发布时间】:2015-04-25 06:33:19
【问题描述】:
我无法在 stackoverflow 上找到确切的示例,所以这是我的问题。在 MySQL 4.x 中它工作正常,但 5.x 似乎不喜欢以下内容:
SELECT some stuff..
FROM schools, member , applications
LEFT JOIN courses ON courses.id = applications.course_id
LEFT JOIN staff ON staff.id=member.staff_id
此部分引发错误,提示“'on Clause' 中的未知列 'member.staff_id'”。如何更改此设置以使 5.x 不会抱怨?
编辑:我确实注意到,当使用'ONE' LEFT JOIN 时,表名放在FROM 部分中的位置确实很重要,即它必须位于末尾。不过,不确定这与问题有什么关系。这只是 5.x 的问题
【问题讨论】:
-
您确定您正在测试的两个版本之间实际上具有相同的数据库架构吗?
-
是的,完全一样。我已经注意到我之前编写的其他客户程序的这个问题(全部使用 MySQL 5.0>)
-
这是您的全部查询吗?还是你把
where条款留在了那里? -
还有一个 where 子句,但它并没有解决这个问题。它只在学校表中添加了一些限制。
-
这是我通常会删除部分查询的地方,直到错误消失以缩小范围。混合使用新旧式连接语法有点奇怪,但我认为这应该不是问题。
标签: mysql left-join multiple-columns