我想转换以下 Oracle SQL 查询语法(使用 LEFT OUTER JOIN
而不是 (+)
):
SELECT *
FROM TABLEA A, TABLEB B, TABLEC C, TABLED D
WHERE MY_COL = @col_val
AND A.X = B.X(+)
AND B.Y = C.Y(+)
AND D.Z=A.Z
这是我到目前为止所尝试的:
SELECT *
FROM TABLEA A, TABLEB B, TABLEC C, TABLED D
LEFT OUTER JOIN TABLEA A ON A.X = B.X
LEFT OUTER JOIN TABLEC C ON B.Y = C.Y
WHERE MY_COL = @col_val
AND D.Z = A.Z;
但我得到错误:
“ORA-00904: “B”.“X” : 无效标识符”
原文由 Platus 发布,翻译遵循 CC BY-SA 4.0 许可协议
join
上的D
是一个内连接,其余的是左外连接:我总是从内部连接开始连接链,然后是
left outer join
。我从不使用right join
和full join
很少。内连接定义了结果集中的行,所以它们排在第一位。