You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-12-17 01:02:23 +03:00
Remove cross joins and add IN+subquery joins
This commit is contained in:
@@ -44,15 +44,15 @@ de1 de2 d1 d2
|
||||
0.12345678901234567890123456789000000000 1.1234567891 NULL NULL
|
||||
0.12345678901234567890123456789012345678 1234567890123456789012345678.0123456789 12345678901234567890123456789012345678 1234567890123456789012345678.1234567890
|
||||
0.99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 99999999999999999999999999999999999998 9999999999999999999999999999.9999999998
|
||||
SELECT cs1.d1, cs1.d3, cs2.de1, cs2.de2 FROM cs1 CROSS JOIN cs2 ON cs1.d2 = cs2.de2 ORDER BY 1;
|
||||
d1 d3 de1 de2
|
||||
0 0.12345678901234567890123456789123450000 0.12345678901234567890123456789000000000 1.1234567891
|
||||
99999999999999999999999999999999999998 0.99999999999999999999999999999999999998 0.99999999999999999999999999999999999998 9999999999999999999999999999.9999999998
|
||||
SELECT cs2.de1, cs2.de2, cs1.d1, cs1.d2 FROM cs1 CROSS JOIN cs2 ON cs1.d3 = cs2.de1 ORDER BY 1;
|
||||
de1 de2 d1 d2
|
||||
-0.12345678901234567890123456789012345678 -1234567890123456789012345678.0123456789 -12345678901234567890123456789012345678 -1234567890123456789012345678.1234567890
|
||||
0.12345678901234567890123456789012345678 1234567890123456789012345678.0123456789 12345678901234567890123456789012345678 1234567890123456789012345678.1234567890
|
||||
0.99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 99999999999999999999999999999999999998 9999999999999999999999999999.9999999998
|
||||
SELECT * FROM cs1 WHERE cs1.d2 IN (SELECT cs2.de2 FROM cs2) ORDER BY 1;
|
||||
d1 d2 d3
|
||||
0 1.1234567891 0.12345678901234567890123456789123450000
|
||||
99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998
|
||||
SELECT * FROM cs2 WHERE cs2.de1 IN (SELECT cs1.d3 FROM cs1) ORDER BY 1;
|
||||
de1 de2
|
||||
-0.12345678901234567890123456789012345678 -1234567890123456789012345678.0123456789
|
||||
0.12345678901234567890123456789012345678 1234567890123456789012345678.0123456789
|
||||
0.99999999999999999999999999999999999998 9999999999999999999999999999.9999999998
|
||||
SELECT count(*) FROM cs1 where exists (SELECT cs2.de2 FROM cs2 WHERE cs1.d2=cs2.de2);
|
||||
count(*)
|
||||
2
|
||||
|
||||
@@ -29,8 +29,8 @@ SELECT cs1.d3, cs1.d1, cs1.d2, cs2.de2 FROM cs1 LEFT JOIN cs2 ON cs1.d3 = cs2.de
|
||||
SELECT cs1.d1, cs1.d3, cs2.de1, cs2.de2 FROM cs1 RIGHT JOIN cs2 ON cs1.d2 = cs2.de2 ORDER BY 1;
|
||||
SELECT cs2.de1, cs2.de2, cs1.d1, cs1.d2 FROM cs1 RIGHT JOIN cs2 ON cs1.d3 = cs2.de1 ORDER BY 1;
|
||||
|
||||
SELECT cs1.d1, cs1.d3, cs2.de1, cs2.de2 FROM cs1 CROSS JOIN cs2 ON cs1.d2 = cs2.de2 ORDER BY 1;
|
||||
SELECT cs2.de1, cs2.de2, cs1.d1, cs1.d2 FROM cs1 CROSS JOIN cs2 ON cs1.d3 = cs2.de1 ORDER BY 1;
|
||||
SELECT * FROM cs1 WHERE cs1.d2 IN (SELECT cs2.de2 FROM cs2) ORDER BY 1;
|
||||
SELECT * FROM cs2 WHERE cs2.de1 IN (SELECT cs1.d3 FROM cs1) ORDER BY 1;
|
||||
|
||||
SELECT count(*) FROM cs1 where exists (SELECT cs2.de2 FROM cs2 WHERE cs1.d2=cs2.de2);
|
||||
SELECT count(*) FROM cs2 where not exists (SELECT cs1.d2 FROM cs1 WHERE cs1.d2=cs2.de2);
|
||||
|
||||
Reference in New Issue
Block a user