Files
oceanbase/unittest/sql/resolver/sql/test_resolver_using_on.test
oceanbase-admin cea7de1475 init push
2021-05-31 22:56:52 +08:00

57 lines
2.8 KiB
Plaintext

drop database if exists dbdml;
create database dbdml;
use dbdml;
drop table if exists tjuo1,tjuo2,tjuo3;
create table tjuo1 (pk int,c1 int, primary key(pk));
create table tjuo2 (pk int,c1 int, c2 int, primary key(pk));
create table tjuo3 (pk int,c2 int, primary key(pk));
insert into tjuo1 values(1, 11), (2, 12), (3, 13);
insert into tjuo2 values(4, 11, 21), (5, 12, 22), (6, 13, 23);
insert into tjuo3 values(7, 21), (8, 22), (9, 23);
select * from tjuo1; select * from tjuo2; select * from tjuo3;
# expected same filter as
# SELECT * FROM tjuo1 JOIN tjuo2 on tjuo1.c1=tjuo2.c1 JOIN tjuo3 on tjuo2.c2=tjuo3.c2;
#
SELECT * FROM tjuo1 JOIN tjuo2 USING (c1) JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 JOIN tjuo2 USING (c1) LEFT JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 JOIN tjuo2 USING (c1) RIGHT JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 JOIN tjuo2 USING (c1) FULL JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 RIGHT JOIN tjuo2 USING (c1) JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 RIGHT JOIN tjuo2 USING (c1) LEFT JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 RIGHT JOIN tjuo2 USING (c1) RIGHT JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 RIGHT JOIN tjuo2 USING (c1) FULL JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 LEFT JOIN tjuo2 USING (c1) JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 LEFT JOIN tjuo2 USING (c1) LEFT JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 LEFT JOIN tjuo2 USING (c1) RIGHT JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 LEFT JOIN tjuo2 USING (c1) FULL JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 FULL JOIN tjuo2 USING (c1) JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 FULL JOIN tjuo2 USING (c1) LEFT JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 FULL JOIN tjuo2 USING (c1) RIGHT JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 FULL JOIN tjuo2 USING (c1) FULL JOIN tjuo3 USING (c2);
--error 5217
SELECT * FROM tjuo1 JOIN tjuo2 USING (pk) JOIN tjuo3 USING (c1);
--error 5217
SELECT * FROM tjuo1 LEFT JOIN tjuo2 USING (pk) RIGHT JOIN tjuo3 USING (c1);
--error 5217
SELECT * FROM tjuo1 RIGHT JOIN tjuo2 USING (pk) LEFT JOIN tjuo3 USING (c1);
--error 5217
SELECT * FROM tjuo1 RIGHT JOIN tjuo2 USING (pk) FULL JOIN tjuo3 USING (c1);
# sub-query
SELECT * FROM tjuo1 LEFT JOIN (SELECT * FROM tjuo2) as tjuo2_alias USING (c1) RIGHT JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 RIGHT JOIN (SELECT * FROM tjuo2) as tjuo2_alias USING (c1) RIGHT JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 RIGHT JOIN (SELECT * FROM tjuo2) as tjuo2_alias USING (c1) LEFT JOIN tjuo3 USING (c2);
SELECT * FROM tjuo1 LEFT JOIN (SELECT * FROM tjuo2) as tjuo2_alias USING (c1) RIGHT JOIN (select * from tjuo3) as tjuo3_alias USING (c2);
SELECT * FROM tjuo1 RIGHT JOIN (SELECT * FROM tjuo2) as tjuo2_alias USING (c1) RIGHT JOIN (select * from tjuo3) as tjuo3_alias USING (c2);
SELECT * FROM tjuo1 RIGHT JOIN (SELECT * FROM tjuo2) as tjuo2_alias USING (c1) LEFT JOIN (select * from tjuo3) as tjuo3_alias USING (c2);
drop database dbdml;