Oracle兼容-语法-FULL JOIN
1. 语法
在GreatSQL中支持 全连接(FULL JOIN)。目前除了暂不支持 USING() 语法外,FULL JOIN 与既有的 LEFT/RIGHT JOIN 的使用方式完全一致。
FULL OUTER JOIN 与 FULL JOIN 等价。
参考语法如下:
1. table_references:
2. escaped_table_reference [, escaped_table_reference] ...
4. escaped_table_reference: {
5. table_reference
6. | { OJ table_reference }
7. }
9. table_reference: {
10. table_factor
11. | joined_table
12. }
14. ...
16. joined_table: {
17. | table_reference {LEFT|RIGHT} [OUTER] JOIN table_reference join_specification
18. | table_reference NATURAL [INNER | {LEFT|RIGHT} [OUTER]] JOIN table_factor
19. | table_reference FULL [OUTER] JOIN table_reference ON search_condition
20. }
22. join_specification: {
23. ON search_condition
24. | USING (join_column_list)
25. }
2. Oracle兼容说明
-
- 不支持
USING()语法
- 不支持
1. greatsql> SELECT * FROM t1 FULL JOIN t2 USING(c1);
2. ERROR 1235 (42000): This version of MySQL doesn't yet support 'FULL JOIN with USING clause'
-
- 不支持与外连接符号
(+)同时使用
- 不支持与外连接符号
1. greatsql> SELECT * FROM t1 FULL JOIN t2 ON t1.c1=t2.c1(+);
2. ERROR 1235 (42000): This version of MySQL doesn't yet support 'Full join used together with outer join sign '(+)''
3. 示例
1. -- 创建测试表并初始化数据
2. greatsql> CREATE TABLE t1(c1 INT, c2 VARCHAR(10));
3. greatsql> CREATE TABLE t2(c1 INT, c2 VARCHAR(10));
4. greatsql> CREATE TABLE t3(c1 INT, c2 VARCHAR(10));
6. greatsql> INSERT INTO t1 VALUES(1, 't1_row1'), (2, 't1_row2');
7. greatsql> INSERT INTO t2 VALUES(1, 't2_row1'), (3, 't2_row3'), (4, 't2_row4');
8. greatsql> INSERT INTO t3 VALUES(3, 't3_row3');
10. greatsql> SELECT * FROM t1 FULL JOIN t2 ON t1.c1=t2.c1;
11. +------+---------+------+---------+
12. | c1 | c2 | c1 | c2 |
13. +------+---------+------+---------+
14. | 1 | t1_row1 | 1 | t2_row1 |
15. | 2 | t1_row2 | NULL | NULL |
16. | NULL | NULL | 3 | t2_row3 |
17. | NULL | NULL | 4 | t2_row4 |
18. +------+---------+------+---------+
20. greatsql> SELECT * FROM t1 FULL JOIN (t2 FULL JOIN t3 ON t2.c1=t3.c1) ON t1.c1=t2.c1;
21. +------+---------+------+---------+------+---------+
22. | c1 | c2 | c1 | c2 | c1 | c2 |
23. +------+---------+------+---------+------+---------+
24. | 1 | t1_row1 | 1 | t2_row1 | NULL | NULL |
25. | 2 | t1_row2 | NULL | NULL | NULL | NULL |
26. | NULL | NULL | 3 | t2_row3 | 3 | t3_row3 |
27. | NULL | NULL | 4 | t2_row4 | NULL | NULL |
28. +------+---------+------+---------+------+---------+
问题反馈
联系我们
扫码关注微信公众号

