对连接表使用符合 ISO/ANSI 的语法,您可指定 INNER JOIN、CROSS JOIN、NATURAL JOIN、LEFT JOIN(或 LEFT OUTER JOIN)、RIGHT JOIN(或 RIGHT OUTER JOIN)和 FULL JOIN(FULL OUTER JOIN)关键字。在符合 ANSI 的外连接中,OUTER 关键字是可选的。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
subquery | 嵌入的查询 | 不可包含 FIRST 或 ORDER BY 子句 | SELECT 语句 |
在同一查询块中,对于所有外连接您必须使用相同的连接语法形式(或 GBase 8s 扩展,或符合 ANSI)。当您使用符合 ANSI 的连接语法时,您还必须在 ON 子句中指定连接条件。
SELECT * FROM (T1 LEFT JOIN T2) CROSS JOIN T3 ON (T1.c1 = T2.c5) WHERE (T1.c1 < 100); -- Ambiguous order of operations; SELECT * FROM (T1 LEFT JOIN T2 ON (T1.c1 = T2.c5)) CROSS JOIN T3 WHERE (T1.c1 < 100); -- Unambiguous order of operations;
SELECT * FROM ( (SELECT C1,C2 FROM T3) AS VT3(V31,V32) LEFT OUTER JOIN ( (SELECT C1,C2 FROM T1) AS VT1(VC1,VC2) LEFT OUTER JOIN (SELECT C1,C2 FROM T2) AS VT2(VC3,VC4) ON VT1.VC1 = VT2.VC3) ON VT3.V31 = VT2.VC3);