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
--error ER_CARTESIAN_JOIN_ATTEMPTED
39
SELECT t3.a,t3.b,t4.a,t4.b
42
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
48
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
52
ON t3.a=1 AND t2.b=t4.b;
55
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
60
WHERE t3.a=1 OR t3.c IS NULL;
62
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
67
WHERE t3.a=1 OR t3.c IS NULL;
69
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
74
WHERE t3.a>1 OR t3.c IS NULL;
79
--error ER_CARTESIAN_JOIN_ATTEMPTED
80
SELECT t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
83
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
90
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
95
WHERE t3.a>1 OR t3.c IS NULL;
97
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
102
WHERE t3.a>1 OR t3.c IS NULL;
105
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
110
WHERE (t3.a>1 OR t3.c IS NULL) AND
111
(t5.a<3 OR t5.c IS NULL);
113
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
118
WHERE (t3.a>1 OR t3.c IS NULL) AND
119
(t5.a<3 OR t5.c IS NULL);
128
SELECT t6.a,t6.b,t7.a,t7.b
129
FROM t6 CROSS JOIN t7;
136
SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
140
ON t7.b=t8.b AND t6.b < 10;
142
SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
146
ON t7.b=t8.b AND t6.b < 10;
151
SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
158
ON t7.b=t8.b AND t6.b < 10
160
ON t6.b >= 2 AND t5.b=t7.b;
163
SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
170
ON t7.b=t8.b AND t6.b < 10
172
ON t6.b >= 2 AND t5.b=t7.b AND
173
(t8.a < 1 OR t8.c IS NULL);
175
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
179
ON t3.a=1 AND t2.b=t4.b;
181
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
182
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
186
ON t3.a=1 AND t2.b=t4.b,
193
ON t7.b=t8.b AND t6.b < 10
195
ON t6.b >= 2 AND t5.b=t7.b;
198
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
199
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
203
ON t3.a=1 AND t2.b=t4.b,
210
ON t7.b=t8.b AND t6.b < 10
212
ON t6.b >= 2 AND t5.b=t7.b
214
(t6.a < 6 OR t6.c IS NULL);
219
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
220
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
227
ON t3.a=1 AND t2.b=t4.b,
234
ON t7.b=t8.b AND t6.b < 10
236
ON t6.b >= 2 AND t5.b=t7.b
238
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
239
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
242
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
243
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
250
ON t3.a=1 AND t2.b=t4.b,
257
ON t7.b=t8.b AND t6.b < 10
259
ON t6.b >= 2 AND t5.b=t7.b
261
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
262
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
264
WHERE (t2.a >= 4 OR t2.c IS NULL);
270
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
271
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
278
ON t3.a=1 AND t2.b=t4.b,
285
ON t7.b=t8.b AND t6.b < 10
287
ON t6.b >= 2 AND t5.b=t7.b
289
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
290
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
294
(t2.a >= 4 OR t2.c IS NULL);
296
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
297
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
304
ON t3.a=1 AND t2.b=t4.b,
311
ON t7.b=t8.b AND t6.b < 10
313
ON t6.b >= 2 AND t5.b=t7.b
315
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
316
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
320
(t2.a >= 4 OR t2.c IS NULL);
324
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
325
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
332
ON t3.a=1 AND t2.b=t4.b,
339
ON t7.b=t8.b AND t6.b < 10
341
ON t6.b >= 2 AND t5.b=t7.b
343
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
344
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
349
(t2.a >= 4 OR t2.c IS NULL) AND
350
(t3.a < 5 OR t3.c IS NULL) AND
351
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
352
(t5.a >=2 OR t5.c IS NULL) AND
353
(t6.a >=4 OR t6.c IS NULL) AND
354
(t7.a <= 2 OR t7.c IS NULL) AND
355
(t8.a < 1 OR t8.c IS NULL) AND
356
(t8.b=t9.b OR t8.c IS NULL) AND
362
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
363
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
370
ON t3.a=1 AND t2.b=t4.b,
377
ON t7.b=t8.b AND t6.b < 10
379
ON t6.b >= 2 AND t5.b=t7.b
381
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
382
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
387
(t2.a >= 4 OR t2.c IS NULL) AND
388
(t3.a < 5 OR t3.c IS NULL) AND
389
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
390
(t5.a >=2 OR t5.c IS NULL) AND
391
(t6.a >=4 OR t6.c IS NULL) AND
392
(t7.a <= 2 OR t7.c IS NULL) AND
393
(t8.a < 1 OR t8.c IS NULL) AND
394
(t8.b=t9.b OR t8.c IS NULL) AND
406
SELECT t2.a,t2.b,t3.a,t3.b
413
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b
421
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b
428
SELECT t3.a,t3.b,t4.a,t4.b
429
FROM t3 CROSS JOIN t4;
431
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
435
ON t3.a=1 AND t2.b=t4.b;
438
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
442
ON t3.a=1 AND t2.b=t4.b
446
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
450
ON t3.a=1 AND t2.b=t4.b
453
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
457
ON t3.a=1 AND t2.b=t4.b
461
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
465
ON t3.a=1 AND t2.b=t4.b
468
CREATE INDEX idx_b ON t2(b);
472
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
476
ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
478
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
482
ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
486
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
487
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
494
ON t3.a=1 AND t2.b=t4.b,
501
ON t7.b=t8.b AND t6.b < 10
503
ON t6.b >= 2 AND t5.b=t7.b
505
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
506
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
511
(t2.a >= 4 OR t2.c IS NULL) AND
512
(t3.a < 5 OR t3.c IS NULL) AND
513
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
514
(t5.a >=2 OR t5.c IS NULL) AND
515
(t6.a >=4 OR t6.c IS NULL) AND
516
(t7.a <= 2 OR t7.c IS NULL) AND
517
(t8.a < 1 OR t8.c IS NULL) AND
518
(t8.b=t9.b OR t8.c IS NULL) AND
521
CREATE INDEX idx_b ON t4(b);
522
CREATE INDEX idx_b ON t5(b);
525
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
526
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
533
ON t3.a=1 AND t2.b=t4.b,
540
ON t7.b=t8.b AND t6.b < 10
542
ON t6.b >= 2 AND t5.b=t7.b
544
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
545
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
550
(t2.a >= 4 OR t2.c IS NULL) AND
551
(t3.a < 5 OR t3.c IS NULL) AND
552
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
553
(t5.a >=2 OR t5.c IS NULL) AND
554
(t6.a >=4 OR t6.c IS NULL) AND
555
(t7.a <= 2 OR t7.c IS NULL) AND
556
(t8.a < 1 OR t8.c IS NULL) AND
557
(t8.b=t9.b OR t8.c IS NULL) AND
560
CREATE INDEX idx_b ON t8(b);
563
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
564
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
571
ON t3.a=1 AND t2.b=t4.b,
578
ON t7.b=t8.b AND t6.b < 10
580
ON t6.b >= 2 AND t5.b=t7.b
582
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
583
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
588
(t2.a >= 4 OR t2.c IS NULL) AND
589
(t3.a < 5 OR t3.c IS NULL) AND
590
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
591
(t5.a >=2 OR t5.c IS NULL) AND
592
(t6.a >=4 OR t6.c IS NULL) AND
593
(t7.a <= 2 OR t7.c IS NULL) AND
594
(t8.a < 1 OR t8.c IS NULL) AND
595
(t8.b=t9.b OR t8.c IS NULL) AND
598
CREATE INDEX idx_b ON t1(b);
599
CREATE INDEX idx_a ON t0(a);
602
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
603
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
610
ON t3.a=1 AND t2.b=t4.b,
617
ON t7.b=t8.b AND t6.b < 10
619
ON t6.b >= 2 AND t5.b=t7.b
621
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
622
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
627
(t2.a >= 4 OR t2.c IS NULL) AND
628
(t3.a < 5 OR t3.c IS NULL) AND
629
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
630
(t5.a >=2 OR t5.c IS NULL) AND
631
(t6.a >=4 OR t6.c IS NULL) AND
632
(t7.a <= 2 OR t7.c IS NULL) AND
633
(t8.a < 1 OR t8.c IS NULL) AND
634
(t8.b=t9.b OR t8.c IS NULL) AND
637
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
638
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
645
ON t3.a=1 AND t2.b=t4.b,
652
ON t7.b=t8.b AND t6.b < 10
654
ON t6.b >= 2 AND t5.b=t7.b
656
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
657
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
662
(t2.a >= 4 OR t2.c IS NULL) AND
663
(t3.a < 5 OR t3.c IS NULL) AND
664
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
665
(t5.a >=2 OR t5.c IS NULL) AND
666
(t6.a >=4 OR t6.c IS NULL) AND
667
(t7.a <= 2 OR t7.c IS NULL) AND
668
(t8.a < 1 OR t8.c IS NULL) AND
669
(t8.b=t9.b OR t8.c IS NULL) AND
678
SELECT t2.a,t2.b,t3.a,t3.b
679
FROM t2 LEFT JOIN t3 ON t2.b=t3.b
680
WHERE t2.a = 4 OR (t2.a > 4 AND t3.a IS NULL);
682
SELECT t2.a,t2.b,t3.a,t3.b
683
FROM t2 LEFT JOIN (t3) ON t2.b=t3.b
684
WHERE t2.a = 4 OR (t2.a > 4 AND t3.a IS NULL);
687
CHANGE COLUMN a a1 int,
688
CHANGE COLUMN c c1 int;
690
SELECT t2.a,t2.b,t3.a1,t3.b
691
FROM t2 LEFT JOIN t3 ON t2.b=t3.b
692
WHERE t2.a = 4 OR (t2.a > 4 AND t3.a1 IS NULL);
694
SELECT t2.a,t2.b,t3.a1,t3.b
695
FROM t2 NATURAL LEFT JOIN t3
696
WHERE t2.a = 4 OR (t2.a > 4 AND t3.a1 IS NULL);
698
DROP TABLE t0,t1,t2,t3,t4,t5,t6,t7,t8,t9;
700
CREATE TABLE t1 (a int);
701
CREATE TABLE t2 (a int);
702
CREATE TABLE t3 (a int);
704
INSERT INTO t1 VALUES (1);
705
INSERT INTO t2 VALUES (2);
706
INSERT INTO t3 VALUES (2);
707
INSERT INTO t1 VALUES (2);
709
#check proper syntax for nested outer joins
711
SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t2.a=t3.a) ON t1.a=t3.a;
713
#must be equivalent to:
715
SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
717
#check that everything is al right when all tables contain not more than 1 row
720
DELETE FROM t1 WHERE a=2;
721
SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
723
SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
727
#on expression for a nested outer join does not depend on the outer table
730
CREATE TABLE t1(a int, key (a));
731
CREATE TABLE t2(b int, key (b));
732
CREATE TABLE t3(c int, key (c));
734
INSERT INTO t1 VALUES (NULL), (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
735
(10), (11), (12), (13), (14), (15), (16), (17), (18), (19);
737
INSERT INTO t2 VALUES (NULL), (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
738
(10), (11), (12), (13), (14), (15), (16), (17), (18), (19);
740
INSERT INTO t3 VALUES (0), (1), (2), (3), (4), (5);
742
EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON c < 3 and b = c;
743
EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
744
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
747
EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
748
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
753
# Test for bug #11284: empty table in a nested left join
756
CREATE TABLE t1 (c11 int);
757
CREATE TABLE t2 (c21 int);
758
CREATE TABLE t3 (c31 int);
760
INSERT INTO t1 VALUES (4), (5);
762
SELECT * FROM t1 LEFT JOIN t2 ON c11=c21;
763
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON c11=c21;
765
SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON c21=c31) ON c11=c21;
766
EXPLAIN SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON c21=c31) ON c11=c21;
771
create table t1 (a int);
772
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
773
create table t2 (a int, filler char(100), key(a));
774
insert into t2 select A.a + 10*B.a, '' from t1 A CROSS JOIN t1 B;
775
create table t3 like t2;
776
insert into t3 select * from t2;
778
explain select * from t1 left join
779
(t2 left join t3 on (t2.a = t3.a))
781
drop table t1, t2, t3;
784
# Test for bug #24345: crash with nested left outer join when outer table is substituted
785
# for a row that happens to have a null value for the join attribute.
789
id int NOT NULL PRIMARY KEY,
795
INSERT INTO t1 VALUES
796
(1,NULL,NULL),(2,NULL,NULL),(3,NULL,NULL),(4,NULL,NULL),(5,NULL,NULL);
799
id int NOT NULL PRIMARY KEY,
801
nm varchar(255) NOT NULL,
804
INSERT INTO t2 VALUES
805
(2441905,4308,'LesAbymes'),(2441906,4308,'Anse-Bertrand');
808
id int NOT NULL PRIMARY KEY,
816
id int NOT NULL PRIMARY KEY,
817
nm varchar(255) NOT NULL
820
INSERT INTO t4 VALUES (4308,'Guadeloupe'),(4309,'Martinique');
824
(t2 LEFT JOIN t3 ON t3.ct=t2.id AND t3.ln='5') ON t1.ct=t2.id
829
(t2 LEFT JOIN t3 ON t3.ct=t2.id AND t3.ln='5') ON t1.ct=t2.id
830
LEFT JOIN t4 ON t2.sr=t4.id
833
DROP TABLE t1,t2,t3,t4;
836
# BUG#25575: ERROR 1052 (Column in from clause is ambiguous) with sub-join
838
CREATE TABLE t1 (a INT, b INT);
839
CREATE TABLE t2 (a INT);
840
CREATE TABLE t3 (a INT, c INT);
841
CREATE TABLE t4 (a INT, c INT);
842
CREATE TABLE t5 (a INT, c INT);
844
SELECT b FROM t1 JOIN (t2 LEFT JOIN t3 USING (a) LEFT JOIN t4 USING (a)
845
LEFT JOIN t5 USING (a)) USING (a);
847
--error ER_NON_UNIQ_ERROR
848
SELECT c FROM t1 JOIN (t2 LEFT JOIN t3 USING (a) LEFT JOIN t4 USING (a)
849
LEFT JOIN t5 USING (a)) USING (a);
851
SELECT b FROM t1 JOIN (t2 JOIN t3 USING (a) JOIN t4 USING (a)
852
JOIN t5 USING (a)) USING (a);
854
--error ER_NON_UNIQ_ERROR
855
SELECT c FROM t1 JOIN (t2 JOIN t3 USING (a) JOIN t4 USING (a)
856
JOIN t5 USING (a)) USING (a);
858
DROP TABLE t1,t2,t3,t4,t5;
859
CREATE TABLE t1 (a INT, b INT);
860
CREATE TABLE t2 (a INT, b INT);
861
CREATE TABLE t3 (a INT, b INT);
863
INSERT INTO t1 VALUES (1,1);
864
INSERT INTO t2 VALUES (1,1);
865
INSERT INTO t3 VALUES (1,1);
867
--error ER_NON_UNIQ_ERROR
868
SELECT * FROM t1 JOIN (t2 JOIN t3 USING (b)) USING (a);
873
# BUG#29604: inner nest of left join interleaves with outer tables
877
carrier char(2) default NULL,
878
id int NOT NULL auto_increment PRIMARY KEY
880
INSERT INTO t1 VALUES
881
('CO',235371754),('CO',235376554),('CO',235376884),('CO',235377874),
882
('CO',231060394),('CO',231059224),('CO',231059314),('CO',231060484),
883
('CO',231060274),('CO',231060124),('CO',231060244),('CO',231058594),
884
('CO',231058924),('CO',231058504),('CO',231059344),('CO',231060424),
885
('CO',231059554),('CO',231060304),('CO',231059644),('CO',231059464),
886
('CO',231059764),('CO',231058294),('CO',231058624),('CO',231058864),
887
('CO',231059374),('CO',231059584),('CO',231059734),('CO',231059014),
888
('CO',231059854),('CO',231059494),('CO',231059794),('CO',231058534),
889
('CO',231058324),('CO',231058684),('CO',231059524),('CO',231059974);
892
scan_date date default NULL,
893
package_id int default NULL,
894
INDEX scan_date(scan_date),
895
INDEX package_id(package_id)
897
INSERT INTO t2 VALUES
898
('2008-12-29',231062944),('2008-12-29',231065764),('2008-12-29',231066124),
899
('2008-12-29',231060094),('2008-12-29',231061054),('2008-12-29',231065644),
900
('2008-12-29',231064384),('2008-12-29',231064444),('2008-12-29',231073774),
901
('2008-12-29',231058594),('2008-12-29',231059374),('2008-12-29',231066004),
902
('2008-12-29',231068494),('2008-12-29',231070174),('2008-12-29',231071884),
903
('2008-12-29',231063274),('2008-12-29',231063754),('2008-12-29',231064144),
904
('2008-12-29',231069424),('2008-12-29',231073714),('2008-12-29',231058414),
905
('2008-12-29',231060994),('2008-12-29',231069154),('2008-12-29',231068614),
906
('2008-12-29',231071464),('2008-12-29',231074014),('2008-12-29',231059614),
907
('2008-12-29',231059074),('2008-12-29',231059464),('2008-12-29',231069094),
908
('2008-12-29',231067294),('2008-12-29',231070144),('2008-12-29',231073804),
909
('2008-12-29',231072634),('2008-12-29',231058294),('2008-12-29',231065344),
910
('2008-12-29',231066094),('2008-12-29',231069034),('2008-12-29',231058594),
911
('2008-12-29',231059854),('2008-12-29',231059884),('2008-12-29',231059914),
912
('2008-12-29',231063664),('2008-12-29',231063814),('2008-12-29',231063904);
915
package_id int default NULL,
916
INDEX package_id(package_id)
918
INSERT INTO t3 VALUES
919
(231058294),(231058324),(231058354),(231058384),(231058414),(231058444),
920
(231058474),(231058504),(231058534),(231058564),(231058594),(231058624),
921
(231058684),(231058744),(231058804),(231058864),(231058924),(231058954),
922
(231059014),(231059074),(231059104),(231059134),(231059164),(231059194),
923
(231059224),(231059254),(231059284),(231059314),(231059344),(231059374),
924
(231059404),(231059434),(231059464),(231059494),(231059524),(231059554),
925
(231059584),(231059614),(231059644),(231059674),(231059704),(231059734),
926
(231059764),(231059794),(231059824),(231059854),(231059884),(231059914),
927
(231059944),(231059974),(231060004),(231060034),(231060064),(231060094),
928
(231060124),(231060154),(231060184),(231060214),(231060244),(231060274),
929
(231060304),(231060334),(231060364),(231060394),(231060424),(231060454),
930
(231060484),(231060514),(231060544),(231060574),(231060604),(231060634),
931
(231060664),(231060694),(231060724),(231060754),(231060784),(231060814),
932
(231060844),(231060874),(231060904),(231060934),(231060964),(231060994),
933
(231061024),(231061054),(231061084),(231061144),(231061174),(231061204),
934
(231061234),(231061294),(231061354),(231061384),(231061414),(231061474),
935
(231061564),(231061594),(231061624),(231061684),(231061714),(231061774),
936
(231061804),(231061894),(231061984),(231062074),(231062134),(231062224),
937
(231062254),(231062314),(231062374),(231062434),(231062494),(231062554),
938
(231062584),(231062614),(231062644),(231062704),(231062734),(231062794),
939
(231062854),(231062884),(231062944),(231063004),(231063034),(231063064),
940
(231063124),(231063154),(231063184),(231063214),(231063274),(231063334),
941
(231063394),(231063424),(231063454),(231063514),(231063574),(231063664);
944
carrier char(2) NOT NULL default '' PRIMARY KEY,
948
INSERT INTO t4 VALUES
949
('99',6),('SK',456),('UA',486),('AI',1081),('OS',1111),('VS',1510);
952
carrier_id int default NULL,
953
INDEX carrier_id(carrier_id)
955
INSERT INTO t5 VALUES
956
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
957
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
958
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
959
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
960
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
961
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(456),(456),(456),
962
(456),(456),(456),(456),(456),(456),(456),(456),(456),(456),(456),(456),
963
(456),(486),(1081),(1111),(1111),(1111),(1111),(1510);
966
FROM((t2 JOIN t1 ON t2.package_id = t1.id)
967
JOIN t3 ON t3.package_id = t1.id);
971
FROM ((t2 JOIN t1 ON t2.package_id = t1.id)
972
JOIN t3 ON t3.package_id = t1.id)
974
(t5 JOIN t4 ON t5.carrier_id = t4.id)
975
ON t4.carrier = t1.carrier;
977
FROM ((t2 JOIN t1 ON t2.package_id = t1.id)
978
JOIN t3 ON t3.package_id = t1.id)
980
(t5 JOIN t4 ON t5.carrier_id = t4.id)
981
ON t4.carrier = t1.carrier;
983
DROP TABLE t1,t2,t3,t4,t5;
985
--echo End of 5.0 tests