3
DROP TABLE IF EXISTS t0,t1,t2,t3,t4,t5,t6,t7,t8,t9;
6
CREATE TABLE t0 (a int, b int, c int);
7
CREATE TABLE t1 (a int, b int, c int);
8
CREATE TABLE t2 (a int, b int, c int);
9
CREATE TABLE t3 (a int, b int, c int);
10
CREATE TABLE t4 (a int, b int, c int);
11
CREATE TABLE t5 (a int, b int, c int);
12
CREATE TABLE t6 (a int, b int, c int);
13
CREATE TABLE t7 (a int, b int, c int);
14
CREATE TABLE t8 (a int, b int, c int);
15
CREATE TABLE t9 (a int, b int, c int);
17
INSERT INTO t0 VALUES (1,1,0), (1,2,0), (2,2,0);
18
INSERT INTO t1 VALUES (1,3,0), (2,2,0), (3,2,0);
19
INSERT INTO t2 VALUES (3,3,0), (4,2,0), (5,3,0);
20
INSERT INTO t3 VALUES (1,2,0), (2,2,0);
21
INSERT INTO t4 VALUES (3,2,0), (4,2,0);
22
INSERT INTO t5 VALUES (3,1,0), (2,2,0), (3,3,0);
23
INSERT INTO t6 VALUES (3,2,0), (6,2,0), (6,1,0);
24
INSERT INTO t7 VALUES (1,1,0), (2,2,0);
25
INSERT INTO t8 VALUES (0,2,0), (1,2,0);
26
INSERT INTO t9 VALUES (1,1,0), (1,2,0), (3,3,0);
38
SELECT t3.a,t3.b,t4.a,t4.b
41
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
47
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
51
ON t3.a=1 AND t2.b=t4.b;
54
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
59
WHERE t3.a=1 OR t3.c IS NULL;
61
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
66
WHERE t3.a=1 OR t3.c IS NULL;
68
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
73
WHERE t3.a>1 OR t3.c IS NULL;
78
SELECT t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
81
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
88
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
93
WHERE t3.a>1 OR t3.c IS NULL;
95
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
100
WHERE t3.a>1 OR t3.c IS NULL;
103
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
108
WHERE (t3.a>1 OR t3.c IS NULL) AND
109
(t5.a<3 OR t5.c IS NULL);
111
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
116
WHERE (t3.a>1 OR t3.c IS NULL) AND
117
(t5.a<3 OR t5.c IS NULL);
125
SELECT t6.a,t6.b,t7.a,t7.b
132
SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
136
ON t7.b=t8.b AND t6.b < 10;
138
SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
142
ON t7.b=t8.b AND t6.b < 10;
147
SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
154
ON t7.b=t8.b AND t6.b < 10
156
ON t6.b >= 2 AND t5.b=t7.b;
158
SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
165
ON t7.b=t8.b AND t6.b < 10
167
ON t6.b >= 2 AND t5.b=t7.b AND
168
(t8.a < 1 OR t8.c IS NULL);
170
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
174
ON t3.a=1 AND t2.b=t4.b;
176
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
177
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
181
ON t3.a=1 AND t2.b=t4.b,
188
ON t7.b=t8.b AND t6.b < 10
190
ON t6.b >= 2 AND t5.b=t7.b;
192
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
193
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
197
ON t3.a=1 AND t2.b=t4.b,
204
ON t7.b=t8.b AND t6.b < 10
206
ON t6.b >= 2 AND t5.b=t7.b
208
(t6.a < 6 OR t6.c IS NULL);
213
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
214
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
221
ON t3.a=1 AND t2.b=t4.b,
228
ON t7.b=t8.b AND t6.b < 10
230
ON t6.b >= 2 AND t5.b=t7.b
232
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
233
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
236
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
237
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
244
ON t3.a=1 AND t2.b=t4.b,
251
ON t7.b=t8.b AND t6.b < 10
253
ON t6.b >= 2 AND t5.b=t7.b
255
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
256
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
258
WHERE (t2.a >= 4 OR t2.c IS NULL);
264
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
265
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
272
ON t3.a=1 AND t2.b=t4.b,
279
ON t7.b=t8.b AND t6.b < 10
281
ON t6.b >= 2 AND t5.b=t7.b
283
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
284
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
288
(t2.a >= 4 OR t2.c IS NULL);
290
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
291
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
298
ON t3.a=1 AND t2.b=t4.b,
305
ON t7.b=t8.b AND t6.b < 10
307
ON t6.b >= 2 AND t5.b=t7.b
309
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
310
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
314
(t2.a >= 4 OR t2.c IS NULL);
317
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
318
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
325
ON t3.a=1 AND t2.b=t4.b,
332
ON t7.b=t8.b AND t6.b < 10
334
ON t6.b >= 2 AND t5.b=t7.b
336
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
337
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
342
(t2.a >= 4 OR t2.c IS NULL) AND
343
(t3.a < 5 OR t3.c IS NULL) AND
344
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
345
(t5.a >=2 OR t5.c IS NULL) AND
346
(t6.a >=4 OR t6.c IS NULL) AND
347
(t7.a <= 2 OR t7.c IS NULL) AND
348
(t8.a < 1 OR t8.c IS NULL) AND
349
(t8.b=t9.b OR t8.c IS NULL) AND
355
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
356
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
363
ON t3.a=1 AND t2.b=t4.b,
370
ON t7.b=t8.b AND t6.b < 10
372
ON t6.b >= 2 AND t5.b=t7.b
374
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
375
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
380
(t2.a >= 4 OR t2.c IS NULL) AND
381
(t3.a < 5 OR t3.c IS NULL) AND
382
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
383
(t5.a >=2 OR t5.c IS NULL) AND
384
(t6.a >=4 OR t6.c IS NULL) AND
385
(t7.a <= 2 OR t7.c IS NULL) AND
386
(t8.a < 1 OR t8.c IS NULL) AND
387
(t8.b=t9.b OR t8.c IS NULL) AND
399
SELECT t2.a,t2.b,t3.a,t3.b
405
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b
412
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b
419
SELECT t3.a,t3.b,t4.a,t4.b
422
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
426
ON t3.a=1 AND t2.b=t4.b;
428
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
432
ON t3.a=1 AND t2.b=t4.b
435
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
439
ON t3.a=1 AND t2.b=t4.b
442
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
446
ON t3.a=1 AND t2.b=t4.b
450
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
454
ON t3.a=1 AND t2.b=t4.b
457
CREATE INDEX idx_b ON t2(b);
460
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
464
ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
466
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
470
ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
473
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
474
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
481
ON t3.a=1 AND t2.b=t4.b,
488
ON t7.b=t8.b AND t6.b < 10
490
ON t6.b >= 2 AND t5.b=t7.b
492
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
493
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
498
(t2.a >= 4 OR t2.c IS NULL) AND
499
(t3.a < 5 OR t3.c IS NULL) AND
500
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
501
(t5.a >=2 OR t5.c IS NULL) AND
502
(t6.a >=4 OR t6.c IS NULL) AND
503
(t7.a <= 2 OR t7.c IS NULL) AND
504
(t8.a < 1 OR t8.c IS NULL) AND
505
(t8.b=t9.b OR t8.c IS NULL) AND
508
CREATE INDEX idx_b ON t4(b);
509
CREATE INDEX idx_b ON t5(b);
512
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
513
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
520
ON t3.a=1 AND t2.b=t4.b,
527
ON t7.b=t8.b AND t6.b < 10
529
ON t6.b >= 2 AND t5.b=t7.b
531
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
532
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
537
(t2.a >= 4 OR t2.c IS NULL) AND
538
(t3.a < 5 OR t3.c IS NULL) AND
539
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
540
(t5.a >=2 OR t5.c IS NULL) AND
541
(t6.a >=4 OR t6.c IS NULL) AND
542
(t7.a <= 2 OR t7.c IS NULL) AND
543
(t8.a < 1 OR t8.c IS NULL) AND
544
(t8.b=t9.b OR t8.c IS NULL) AND
547
CREATE INDEX idx_b ON t8(b);
550
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
551
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
558
ON t3.a=1 AND t2.b=t4.b,
565
ON t7.b=t8.b AND t6.b < 10
567
ON t6.b >= 2 AND t5.b=t7.b
569
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
570
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
575
(t2.a >= 4 OR t2.c IS NULL) AND
576
(t3.a < 5 OR t3.c IS NULL) AND
577
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
578
(t5.a >=2 OR t5.c IS NULL) AND
579
(t6.a >=4 OR t6.c IS NULL) AND
580
(t7.a <= 2 OR t7.c IS NULL) AND
581
(t8.a < 1 OR t8.c IS NULL) AND
582
(t8.b=t9.b OR t8.c IS NULL) AND
585
CREATE INDEX idx_b ON t1(b);
586
CREATE INDEX idx_a ON t0(a);
589
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
590
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
597
ON t3.a=1 AND t2.b=t4.b,
604
ON t7.b=t8.b AND t6.b < 10
606
ON t6.b >= 2 AND t5.b=t7.b
608
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
609
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
614
(t2.a >= 4 OR t2.c IS NULL) AND
615
(t3.a < 5 OR t3.c IS NULL) AND
616
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
617
(t5.a >=2 OR t5.c IS NULL) AND
618
(t6.a >=4 OR t6.c IS NULL) AND
619
(t7.a <= 2 OR t7.c IS NULL) AND
620
(t8.a < 1 OR t8.c IS NULL) AND
621
(t8.b=t9.b OR t8.c IS NULL) AND
624
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
625
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
632
ON t3.a=1 AND t2.b=t4.b,
639
ON t7.b=t8.b AND t6.b < 10
641
ON t6.b >= 2 AND t5.b=t7.b
643
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
644
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
649
(t2.a >= 4 OR t2.c IS NULL) AND
650
(t3.a < 5 OR t3.c IS NULL) AND
651
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
652
(t5.a >=2 OR t5.c IS NULL) AND
653
(t6.a >=4 OR t6.c IS NULL) AND
654
(t7.a <= 2 OR t7.c IS NULL) AND
655
(t8.a < 1 OR t8.c IS NULL) AND
656
(t8.b=t9.b OR t8.c IS NULL) AND
665
SELECT t2.a,t2.b,t3.a,t3.b
666
FROM t2 LEFT JOIN t3 ON t2.b=t3.b
667
WHERE t2.a = 4 OR (t2.a > 4 AND t3.a IS NULL);
669
SELECT t2.a,t2.b,t3.a,t3.b
670
FROM t2 LEFT JOIN (t3) ON t2.b=t3.b
671
WHERE t2.a = 4 OR (t2.a > 4 AND t3.a IS NULL);
674
CHANGE COLUMN a a1 int,
675
CHANGE COLUMN c c1 int;
677
SELECT t2.a,t2.b,t3.a1,t3.b
678
FROM t2 LEFT JOIN t3 ON t2.b=t3.b
679
WHERE t2.a = 4 OR (t2.a > 4 AND t3.a1 IS NULL);
681
SELECT t2.a,t2.b,t3.a1,t3.b
682
FROM t2 NATURAL LEFT JOIN t3
683
WHERE t2.a = 4 OR (t2.a > 4 AND t3.a1 IS NULL);
685
DROP TABLE t0,t1,t2,t3,t4,t5,t6,t7,t8,t9;
687
CREATE TABLE t1 (a int);
688
CREATE TABLE t2 (a int);
689
CREATE TABLE t3 (a int);
691
INSERT INTO t1 VALUES (1);
692
INSERT INTO t2 VALUES (2);
693
INSERT INTO t3 VALUES (2);
694
INSERT INTO t1 VALUES (2);
696
#check proper syntax for nested outer joins
698
SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t2.a=t3.a) ON t1.a=t3.a;
700
#must be equivalent to:
702
SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
704
#check that everything is al right when all tables contain not more than 1 row
707
DELETE FROM t1 WHERE a=2;
708
SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
710
SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
714
#on expression for a nested outer join does not depend on the outer table
717
CREATE TABLE t1(a int, key (a));
718
CREATE TABLE t2(b int, key (b));
719
CREATE TABLE t3(c int, key (c));
721
INSERT INTO t1 VALUES (NULL), (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
722
(10), (11), (12), (13), (14), (15), (16), (17), (18), (19);
724
INSERT INTO t2 VALUES (NULL), (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
725
(10), (11), (12), (13), (14), (15), (16), (17), (18), (19);
727
INSERT INTO t3 VALUES (0), (1), (2), (3), (4), (5);
729
EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON c < 3 and b = c;
730
EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
731
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
734
EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
735
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
740
# Test for bug #11284: empty table in a nested left join
743
CREATE TABLE t1 (c11 int);
744
CREATE TABLE t2 (c21 int);
745
CREATE TABLE t3 (c31 int);
747
INSERT INTO t1 VALUES (4), (5);
749
SELECT * FROM t1 LEFT JOIN t2 ON c11=c21;
750
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON c11=c21;
752
SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON c21=c31) ON c11=c21;
753
EXPLAIN SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON c21=c31) ON c11=c21;
758
create table t1 (a int);
759
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
760
create table t2 (a int, filler char(100), key(a));
761
insert into t2 select A.a + 10*B.a, '' from t1 A, t1 B;
762
create table t3 like t2;
763
insert into t3 select * from t2;
765
explain select * from t1 left join
766
(t2 left join t3 on (t2.a = t3.a))
768
drop table t1, t2, t3;
771
# Test for bug #24345: crash with nested left outer join when outer table is substituted
772
# for a row that happens to have a null value for the join attribute.
776
id int NOT NULL PRIMARY KEY,
782
INSERT INTO t1 VALUES
783
(1,NULL,NULL),(2,NULL,NULL),(3,NULL,NULL),(4,NULL,NULL),(5,NULL,NULL);
786
id int NOT NULL PRIMARY KEY,
788
nm varchar(255) NOT NULL,
791
INSERT INTO t2 VALUES
792
(2441905,4308,'LesAbymes'),(2441906,4308,'Anse-Bertrand');
795
id int NOT NULL PRIMARY KEY,
803
id int NOT NULL PRIMARY KEY,
804
nm varchar(255) NOT NULL
807
INSERT INTO t4 VALUES (4308,'Guadeloupe'),(4309,'Martinique');
811
(t2 LEFT JOIN t3 ON t3.ct=t2.id AND t3.ln='5') ON t1.ct=t2.id
816
(t2 LEFT JOIN t3 ON t3.ct=t2.id AND t3.ln='5') ON t1.ct=t2.id
817
LEFT JOIN t4 ON t2.sr=t4.id
820
DROP TABLE t1,t2,t3,t4;
823
# BUG#25575: ERROR 1052 (Column in from clause is ambiguous) with sub-join
825
CREATE TABLE t1 (a INT, b INT);
826
CREATE TABLE t2 (a INT);
827
CREATE TABLE t3 (a INT, c INT);
828
CREATE TABLE t4 (a INT, c INT);
829
CREATE TABLE t5 (a INT, c INT);
831
SELECT b FROM t1 JOIN (t2 LEFT JOIN t3 USING (a) LEFT JOIN t4 USING (a)
832
LEFT JOIN t5 USING (a)) USING (a);
834
--error ER_NON_UNIQ_ERROR
835
SELECT c FROM t1 JOIN (t2 LEFT JOIN t3 USING (a) LEFT JOIN t4 USING (a)
836
LEFT JOIN t5 USING (a)) USING (a);
838
SELECT b FROM t1 JOIN (t2 JOIN t3 USING (a) JOIN t4 USING (a)
839
JOIN t5 USING (a)) USING (a);
841
--error ER_NON_UNIQ_ERROR
842
SELECT c FROM t1 JOIN (t2 JOIN t3 USING (a) JOIN t4 USING (a)
843
JOIN t5 USING (a)) USING (a);
845
DROP TABLE t1,t2,t3,t4,t5;
846
CREATE TABLE t1 (a INT, b INT);
847
CREATE TABLE t2 (a INT, b INT);
848
CREATE TABLE t3 (a INT, b INT);
850
INSERT INTO t1 VALUES (1,1);
851
INSERT INTO t2 VALUES (1,1);
852
INSERT INTO t3 VALUES (1,1);
854
--error ER_NON_UNIQ_ERROR
855
SELECT * FROM t1 JOIN (t2 JOIN t3 USING (b)) USING (a);
860
# BUG#29604: inner nest of left join interleaves with outer tables
864
carrier char(2) default NULL,
865
id int NOT NULL auto_increment PRIMARY KEY
867
INSERT INTO t1 VALUES
868
('CO',235371754),('CO',235376554),('CO',235376884),('CO',235377874),
869
('CO',231060394),('CO',231059224),('CO',231059314),('CO',231060484),
870
('CO',231060274),('CO',231060124),('CO',231060244),('CO',231058594),
871
('CO',231058924),('CO',231058504),('CO',231059344),('CO',231060424),
872
('CO',231059554),('CO',231060304),('CO',231059644),('CO',231059464),
873
('CO',231059764),('CO',231058294),('CO',231058624),('CO',231058864),
874
('CO',231059374),('CO',231059584),('CO',231059734),('CO',231059014),
875
('CO',231059854),('CO',231059494),('CO',231059794),('CO',231058534),
876
('CO',231058324),('CO',231058684),('CO',231059524),('CO',231059974);
879
scan_date date default NULL,
880
package_id int default NULL,
881
INDEX scan_date(scan_date),
882
INDEX package_id(package_id)
884
INSERT INTO t2 VALUES
885
('2008-12-29',231062944),('2008-12-29',231065764),('2008-12-29',231066124),
886
('2008-12-29',231060094),('2008-12-29',231061054),('2008-12-29',231065644),
887
('2008-12-29',231064384),('2008-12-29',231064444),('2008-12-29',231073774),
888
('2008-12-29',231058594),('2008-12-29',231059374),('2008-12-29',231066004),
889
('2008-12-29',231068494),('2008-12-29',231070174),('2008-12-29',231071884),
890
('2008-12-29',231063274),('2008-12-29',231063754),('2008-12-29',231064144),
891
('2008-12-29',231069424),('2008-12-29',231073714),('2008-12-29',231058414),
892
('2008-12-29',231060994),('2008-12-29',231069154),('2008-12-29',231068614),
893
('2008-12-29',231071464),('2008-12-29',231074014),('2008-12-29',231059614),
894
('2008-12-29',231059074),('2008-12-29',231059464),('2008-12-29',231069094),
895
('2008-12-29',231067294),('2008-12-29',231070144),('2008-12-29',231073804),
896
('2008-12-29',231072634),('2008-12-29',231058294),('2008-12-29',231065344),
897
('2008-12-29',231066094),('2008-12-29',231069034),('2008-12-29',231058594),
898
('2008-12-29',231059854),('2008-12-29',231059884),('2008-12-29',231059914),
899
('2008-12-29',231063664),('2008-12-29',231063814),('2008-12-29',231063904);
902
package_id int default NULL,
903
INDEX package_id(package_id)
905
INSERT INTO t3 VALUES
906
(231058294),(231058324),(231058354),(231058384),(231058414),(231058444),
907
(231058474),(231058504),(231058534),(231058564),(231058594),(231058624),
908
(231058684),(231058744),(231058804),(231058864),(231058924),(231058954),
909
(231059014),(231059074),(231059104),(231059134),(231059164),(231059194),
910
(231059224),(231059254),(231059284),(231059314),(231059344),(231059374),
911
(231059404),(231059434),(231059464),(231059494),(231059524),(231059554),
912
(231059584),(231059614),(231059644),(231059674),(231059704),(231059734),
913
(231059764),(231059794),(231059824),(231059854),(231059884),(231059914),
914
(231059944),(231059974),(231060004),(231060034),(231060064),(231060094),
915
(231060124),(231060154),(231060184),(231060214),(231060244),(231060274),
916
(231060304),(231060334),(231060364),(231060394),(231060424),(231060454),
917
(231060484),(231060514),(231060544),(231060574),(231060604),(231060634),
918
(231060664),(231060694),(231060724),(231060754),(231060784),(231060814),
919
(231060844),(231060874),(231060904),(231060934),(231060964),(231060994),
920
(231061024),(231061054),(231061084),(231061144),(231061174),(231061204),
921
(231061234),(231061294),(231061354),(231061384),(231061414),(231061474),
922
(231061564),(231061594),(231061624),(231061684),(231061714),(231061774),
923
(231061804),(231061894),(231061984),(231062074),(231062134),(231062224),
924
(231062254),(231062314),(231062374),(231062434),(231062494),(231062554),
925
(231062584),(231062614),(231062644),(231062704),(231062734),(231062794),
926
(231062854),(231062884),(231062944),(231063004),(231063034),(231063064),
927
(231063124),(231063154),(231063184),(231063214),(231063274),(231063334),
928
(231063394),(231063424),(231063454),(231063514),(231063574),(231063664);
931
carrier char(2) NOT NULL default '' PRIMARY KEY,
932
id int(11) default NULL,
935
INSERT INTO t4 VALUES
936
('99',6),('SK',456),('UA',486),('AI',1081),('OS',1111),('VS',1510);
939
carrier_id int default NULL,
940
INDEX carrier_id(carrier_id)
942
INSERT INTO t5 VALUES
943
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
944
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
945
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
946
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
947
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
948
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(456),(456),(456),
949
(456),(456),(456),(456),(456),(456),(456),(456),(456),(456),(456),(456),
950
(456),(486),(1081),(1111),(1111),(1111),(1111),(1510);
953
FROM((t2 JOIN t1 ON t2.package_id = t1.id)
954
JOIN t3 ON t3.package_id = t1.id);
958
FROM ((t2 JOIN t1 ON t2.package_id = t1.id)
959
JOIN t3 ON t3.package_id = t1.id)
961
(t5 JOIN t4 ON t5.carrier_id = t4.id)
962
ON t4.carrier = t1.carrier;
964
FROM ((t2 JOIN t1 ON t2.package_id = t1.id)
965
JOIN t3 ON t3.package_id = t1.id)
967
(t5 JOIN t4 ON t5.carrier_id = t4.id)
968
ON t4.carrier = t1.carrier;
970
DROP TABLE t1,t2,t3,t4,t5;
972
--echo End of 5.0 tests