1
0
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:
mariadb-BharathBokka
2021-02-08 12:20:33 +00:00
parent 98949580ef
commit d5f4a19cff
2 changed files with 11 additions and 11 deletions

View File

@@ -44,15 +44,15 @@ de1 de2 d1 d2
0.12345678901234567890123456789000000000 1.1234567891 NULL NULL 0.12345678901234567890123456789000000000 1.1234567891 NULL NULL
0.12345678901234567890123456789012345678 1234567890123456789012345678.0123456789 12345678901234567890123456789012345678 1234567890123456789012345678.1234567890 0.12345678901234567890123456789012345678 1234567890123456789012345678.0123456789 12345678901234567890123456789012345678 1234567890123456789012345678.1234567890
0.99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 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; SELECT * FROM cs1 WHERE cs1.d2 IN (SELECT cs2.de2 FROM cs2) ORDER BY 1;
d1 d3 de1 de2 d1 d2 d3
0 0.12345678901234567890123456789123450000 0.12345678901234567890123456789000000000 1.1234567891 0 1.1234567891 0.12345678901234567890123456789123450000
99999999999999999999999999999999999998 0.99999999999999999999999999999999999998 0.99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998
SELECT cs2.de1, cs2.de2, cs1.d1, cs1.d2 FROM cs1 CROSS JOIN cs2 ON cs1.d3 = cs2.de1 ORDER BY 1; SELECT * FROM cs2 WHERE cs2.de1 IN (SELECT cs1.d3 FROM cs1) ORDER BY 1;
de1 de2 d1 d2 de1 de2
-0.12345678901234567890123456789012345678 -1234567890123456789012345678.0123456789 -12345678901234567890123456789012345678 -1234567890123456789012345678.1234567890 -0.12345678901234567890123456789012345678 -1234567890123456789012345678.0123456789
0.12345678901234567890123456789012345678 1234567890123456789012345678.0123456789 12345678901234567890123456789012345678 1234567890123456789012345678.1234567890 0.12345678901234567890123456789012345678 1234567890123456789012345678.0123456789
0.99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 99999999999999999999999999999999999998 9999999999999999999999999999.9999999998 0.99999999999999999999999999999999999998 9999999999999999999999999999.9999999998
SELECT count(*) FROM cs1 where exists (SELECT cs2.de2 FROM cs2 WHERE cs1.d2=cs2.de2); SELECT count(*) FROM cs1 where exists (SELECT cs2.de2 FROM cs2 WHERE cs1.d2=cs2.de2);
count(*) count(*)
2 2

View File

@@ -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 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 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 * FROM cs1 WHERE cs1.d2 IN (SELECT cs2.de2 FROM cs2) 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 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 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); SELECT count(*) FROM cs2 where not exists (SELECT cs1.d2 FROM cs1 WHERE cs1.d2=cs2.de2);