当我为连接的结果分配别名时,我的SQL查询失败。
以下是示例:
SELECT
a, b, c
FROM
((q
INNER JOIN
r ON q.x = r.y) AS IntermediateResult
INNER JOIN
s ON IntermediateResult.a = s.a)
基本上,在第二个内连接中似乎无法识别别名。
我正在使用Mysql
答案 0 :(得分:1)
你根本不需要子查询:
SELECT a, b, c
FROM q INNER JOIN
r
ON q.x = r.y INNER JOIN
s
ON q.a = s.a; -- This is either q.a or r.a
除非您使用MS Access,否则括号也是不必要的。
答案 1 :(得分:0)
您不必将内部联接的结果标记为中间结果,因为您可以直接加入表:
SELECT a,b,c FROM (
SELECT * FROM q
INNER JOIN r AS IntermediateResult
ON q.x=r.y
INNER JOIN s
ON IntermediateResult.a=s.a
) AS joined_qrs