From d5f4a19cffeacb0d86e4ea89caaff573cdcbc988 Mon Sep 17 00:00:00 2001 From: mariadb-BharathBokka Date: Mon, 8 Feb 2021 12:20:33 +0000 Subject: [PATCH] Remove cross joins and add IN+subquery joins --- mtr/future/mcol641-joins.result | 18 +++++++++--------- mtr/future/mcol641-joins.test | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/mtr/future/mcol641-joins.result b/mtr/future/mcol641-joins.result index 7752dc85b..8832f440f 100644 --- a/mtr/future/mcol641-joins.result +++ b/mtr/future/mcol641-joins.result @@ -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 diff --git a/mtr/future/mcol641-joins.test b/mtr/future/mcol641-joins.test index 28430f8fa..d3a16315b 100644 --- a/mtr/future/mcol641-joins.test +++ b/mtr/future/mcol641-joins.test @@ -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);