Details
Description
The following simple join
select * from t1 join t2 join t3 on t2.a=t3.a on t1.a=t2.a; |
over tables t1,t2,t3
create table t1 (a int); |
insert into t1 values (7), (2), (9); |
create table t2 (a int); |
insert into t2 values (5), (1), (7); |
create table t3 (a int); |
insert into t3 values (2), (7), (3); |
cannot be parsed in MariaDB 10.4:
MariaDB [test]> select * from t1 join t2 join t3 on t2.a=t3.a on t1.a=t2.a;
|
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'on t1.a=t2.a' at line 1
|
MySQL 8.0 handles this query properly:
mysql> select * from t1 join t2 join t3 on t2.a=t3.a on t1.a=t2.a;
|
+------+------+------+
|
| a | a | a |
|
+------+------+------+
|
| 7 | 7 | 7 |
|
+------+------+------+
|
This basic valid query also returns syntax error message:
select * from t1 join t2 left join t3 on t2.a=t3.a on t1.a=t2.a; |
Attachments
Issue Links
- causes
-
MDEV-20330 Combination of "," (comma), cross join and left join fails to parse (regression since 10.1.40)
- Closed
-
MDEV-21894 MariaDB 10.3 onward unable to parse syntax that works in earlier versions
- Closed