blob: dcd781c00e059ad621ea6c532a71bee765a8a424 [file] [log] [blame]
# name: sql/join/inner/test_table_from_outer_join_used_in_inner.test
# description: SQL feature F041-07 (The inner table in a left or right outer join can also be used in an inner join)
# group: [Basic joined table]
statement ok
PRAGMA enable_verification
statement ok
CREATE TABLE t1(c11 INTEGER, c12 INTEGER, c13 CHAR);
statement ok
INSERT INTO t1 VALUES (1, 2, 'a'), (2, 3, 'b'), (3, 4, 'c')
statement ok
CREATE TABLE t2 (c21 INTEGER, c22 INTEGER, c23 CHAR);
statement ok
INSERT INTO t2 VALUES (2, 3, 'a'), (3, 4, 'b'), (4, 3, 'c')
query II rowsort
select j.c21, j.c22 from (SELECT c21, c22 from t2 LEFT OUTER JOIN t1 ON (t2.c21 = t1.c11)) j INNER JOIN t2 t22 ON (t22.c21 = j.c22);
----
2 3
3 4
4 3
query II rowsort
select c11, j.c22 from (SELECT c21, c22 from t2 LEFT OUTER JOIN t1 ON (t2.c21 = t1.c11)) j INNER JOIN t1 t11 ON (t11.c12 = j.c22);
----
2 3
2 3
3 4
query II rowsort
select t1.c11, t2.c22 from (t2 LEFT OUTER JOIN t1 ON (t2.c21 = t1.c11)) INNER JOIN t2 t22 ON (t22.c21 = c11);
----
2 3
3 4
query II rowsort
select c21, t11.c12 from (t2 LEFT OUTER JOIN t1 ON (t2.c21 = t1.c11)) INNER JOIN t1 t11 ON (t11.c11 = t2.c22);
----
2 4
4 4
query II rowsort
select t1.c11, t2.c21 from (t2 RIGHT OUTER JOIN t1 ON (t2.c21 = t1.c11)) INNER JOIN t2 t22 ON (t22.c21 = c12);
----
1 null
2 2
3 3
query II rowsort
select t11.c11, t2.c21 from (t2 RIGHT OUTER JOIN t1 ON (t2.c21 = t1.c11)) INNER JOIN t1 t11 ON (t11.c12 = t2.c22);
----
2 2
3 3
query II rowsort
select t1.c11, t2.c21 from (t2 FULL OUTER JOIN t1 ON (t2.c21 = t1.c11)) INNER JOIN t2 t22 ON (t22.c21 = c12);
----
1 null
2 2
3 3
query II rowsort
select t1.c11, t2.c21 from (t2 FULL OUTER JOIN t1 ON (t2.c21 = t1.c11)) INNER JOIN t1 t11 ON (t11.c12 = t2.c22);
----
null 4
2 2
3 3
query III rowsort
select t2.c21, t2.c22, t2.c23 from (t2 LEFT OUTER JOIN t1 ON (t2.c21 = t1.c11)) INNER JOIN t2 t22 ON (t22.c23 = 'a');
----
2 3 a
3 4 b
4 3 c
query III rowsort
select t1.c11, t1.c12, t1.c13 from (t2 LEFT OUTER JOIN t1 ON (t2.c21 = t1.c11)) INNER JOIN t1 t11 ON (t11.c13 = 'a');
----
null null null
2 3 b
3 4 c