选择一个数据 FROM 认证 a,认证 b LEFT JOIN 认证 c ON a.id = c.id
为什么此查询会产生“#1054 - 'on 子句'中的未知列 'a.id'”
选择一个数据 FROM 认证 LEFT JOIN 认证 c ON a.id = c.id
没关系?
ON
问题是您正在混合 JOIN 语法,因此您使用的别名在条件中不可用。您不应该混合 JOIN 语法。
您的查询应该是:
SELECT a.data
FROM Authentications a
CROSS JOIN Authentications b
LEFT JOIN Authentications c
ON a.id = c.id
或者,如果您要加入b
,那么您将使用:
SELECT a.data
FROM Authentications a
INNER JOIN Authentications b
on a.id = b.id
LEFT JOIN Authentications c
ON a.id = c.id
的JOIN
优先级高于逗号,因此 的别名a
不可用于ON
.
首先查询您将 b 加入 c 并在 a 上设置条件。
没有加入 a
'on' 子句必须使用正在连接的表中的列 - 例如 SELECT a.data FROM Authentications a, Authentications b LEFT JOIN Authentications c ON b.id = c.id where a.id = b.id
或类似的东西