~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mysql-test/r/join_nested.result

  • Committer: brian
  • Date: 2008-06-25 05:29:13 UTC
  • Revision ID: brian@localhost.localdomain-20080625052913-6upwo0jsrl4lnapl
clean slate

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
DROP TABLE IF EXISTS t0,t1,t2,t3,t4,t5,t6,t7,t8,t9;
 
2
CREATE TABLE t0 (a int, b int, c int);
 
3
CREATE TABLE t1 (a int, b int, c int);
 
4
CREATE TABLE t2 (a int, b int, c int);
 
5
CREATE TABLE t3 (a int, b int, c int);
 
6
CREATE TABLE t4 (a int, b int, c int);
 
7
CREATE TABLE t5 (a int, b int, c int);
 
8
CREATE TABLE t6 (a int, b int, c int);
 
9
CREATE TABLE t7 (a int, b int, c int);
 
10
CREATE TABLE t8 (a int, b int, c int);
 
11
CREATE TABLE t9 (a int, b int, c int);
 
12
INSERT INTO t0 VALUES (1,1,0), (1,2,0), (2,2,0);
 
13
INSERT INTO t1 VALUES (1,3,0), (2,2,0), (3,2,0);
 
14
INSERT INTO t2 VALUES (3,3,0), (4,2,0), (5,3,0);
 
15
INSERT INTO t3 VALUES (1,2,0), (2,2,0);
 
16
INSERT INTO t4 VALUES (3,2,0), (4,2,0);
 
17
INSERT INTO t5 VALUES (3,1,0), (2,2,0), (3,3,0);
 
18
INSERT INTO t6 VALUES (3,2,0), (6,2,0), (6,1,0);
 
19
INSERT INTO t7 VALUES (1,1,0), (2,2,0);
 
20
INSERT INTO t8 VALUES (0,2,0), (1,2,0);
 
21
INSERT INTO t9 VALUES (1,1,0), (1,2,0), (3,3,0);
 
22
SELECT t2.a,t2.b
 
23
FROM t2;
 
24
a       b
 
25
3       3
 
26
4       2
 
27
5       3
 
28
SELECT t3.a,t3.b
 
29
FROM t3;
 
30
a       b
 
31
1       2
 
32
2       2
 
33
SELECT t4.a,t4.b
 
34
FROM t4;
 
35
a       b
 
36
3       2
 
37
4       2
 
38
SELECT t3.a,t3.b,t4.a,t4.b
 
39
FROM t3,t4;
 
40
a       b       a       b
 
41
1       2       3       2
 
42
2       2       3       2
 
43
1       2       4       2
 
44
2       2       4       2
 
45
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
 
46
FROM t2
 
47
LEFT JOIN              
 
48
(t3, t4)
 
49
ON t2.b=t4.b;
 
50
a       b       a       b       a       b
 
51
3       3       NULL    NULL    NULL    NULL
 
52
4       2       1       2       3       2
 
53
4       2       1       2       4       2
 
54
4       2       2       2       3       2
 
55
4       2       2       2       4       2
 
56
5       3       NULL    NULL    NULL    NULL
 
57
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
 
58
FROM t2
 
59
LEFT JOIN              
 
60
(t3, t4)
 
61
ON t3.a=1 AND t2.b=t4.b;
 
62
a       b       a       b       a       b
 
63
3       3       NULL    NULL    NULL    NULL
 
64
4       2       1       2       3       2
 
65
4       2       1       2       4       2
 
66
5       3       NULL    NULL    NULL    NULL
 
67
EXPLAIN EXTENDED
 
68
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
 
69
FROM t2
 
70
LEFT JOIN              
 
71
(t3, t4)
 
72
ON t2.b=t4.b
 
73
WHERE t3.a=1 OR t3.c IS NULL;
 
74
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
 
75
1       SIMPLE  t2      ALL     NULL    NULL    NULL    NULL    3       100.00  
 
76
1       SIMPLE  t3      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
77
1       SIMPLE  t4      ALL     NULL    NULL    NULL    NULL    2       100.00  
 
78
Warnings:
 
79
Note    1003    select "test"."t2"."a" AS "a","test"."t2"."b" AS "b","test"."t3"."a" AS "a","test"."t3"."b" AS "b","test"."t4"."a" AS "a","test"."t4"."b" AS "b" from "test"."t2" left join ("test"."t3" join "test"."t4") on(("test"."t4"."b" = "test"."t2"."b")) where (("test"."t3"."a" = 1) or isnull("test"."t3"."c"))
 
80
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
 
81
FROM t2
 
82
LEFT JOIN              
 
83
(t3, t4)
 
84
ON t2.b=t4.b
 
85
WHERE t3.a=1 OR t3.c IS NULL;
 
86
a       b       a       b       a       b
 
87
3       3       NULL    NULL    NULL    NULL
 
88
4       2       1       2       3       2
 
89
4       2       1       2       4       2
 
90
5       3       NULL    NULL    NULL    NULL
 
91
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
 
92
FROM t2
 
93
LEFT JOIN              
 
94
(t3, t4)
 
95
ON t2.b=t4.b
 
96
WHERE t3.a>1 OR t3.c IS NULL;
 
97
a       b       a       b       a       b
 
98
3       3       NULL    NULL    NULL    NULL
 
99
4       2       2       2       3       2
 
100
4       2       2       2       4       2
 
101
5       3       NULL    NULL    NULL    NULL
 
102
SELECT t5.a,t5.b
 
103
FROM t5;
 
104
a       b
 
105
3       1
 
106
2       2
 
107
3       3
 
108
SELECT t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
 
109
FROM t3,t4,t5;
 
110
a       b       a       b       a       b
 
111
1       2       3       2       3       1
 
112
2       2       3       2       3       1
 
113
1       2       4       2       3       1
 
114
2       2       4       2       3       1
 
115
1       2       3       2       2       2
 
116
2       2       3       2       2       2
 
117
1       2       4       2       2       2
 
118
2       2       4       2       2       2
 
119
1       2       3       2       3       3
 
120
2       2       3       2       3       3
 
121
1       2       4       2       3       3
 
122
2       2       4       2       3       3
 
123
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
 
124
FROM t2
 
125
LEFT JOIN              
 
126
(t3, t4, t5)
 
127
ON t2.b=t4.b;
 
128
a       b       a       b       a       b       a       b
 
129
3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
130
4       2       1       2       3       2       3       1
 
131
4       2       1       2       3       2       2       2
 
132
4       2       1       2       3       2       3       3
 
133
4       2       1       2       4       2       3       1
 
134
4       2       1       2       4       2       2       2
 
135
4       2       1       2       4       2       3       3
 
136
4       2       2       2       3       2       3       1
 
137
4       2       2       2       3       2       2       2
 
138
4       2       2       2       3       2       3       3
 
139
4       2       2       2       4       2       3       1
 
140
4       2       2       2       4       2       2       2
 
141
4       2       2       2       4       2       3       3
 
142
5       3       NULL    NULL    NULL    NULL    NULL    NULL
 
143
EXPLAIN EXTENDED
 
144
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
 
145
FROM t2
 
146
LEFT JOIN              
 
147
(t3, t4, t5)
 
148
ON t2.b=t4.b
 
149
WHERE t3.a>1 OR t3.c IS NULL;
 
150
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
 
151
1       SIMPLE  t2      ALL     NULL    NULL    NULL    NULL    3       100.00  
 
152
1       SIMPLE  t3      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
153
1       SIMPLE  t4      ALL     NULL    NULL    NULL    NULL    2       100.00  
 
154
1       SIMPLE  t5      ALL     NULL    NULL    NULL    NULL    3       100.00  
 
155
Warnings:
 
156
Note    1003    select "test"."t2"."a" AS "a","test"."t2"."b" AS "b","test"."t3"."a" AS "a","test"."t3"."b" AS "b","test"."t4"."a" AS "a","test"."t4"."b" AS "b","test"."t5"."a" AS "a","test"."t5"."b" AS "b" from "test"."t2" left join ("test"."t3" join "test"."t4" join "test"."t5") on(("test"."t4"."b" = "test"."t2"."b")) where (("test"."t3"."a" > 1) or isnull("test"."t3"."c"))
 
157
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
 
158
FROM t2
 
159
LEFT JOIN              
 
160
(t3, t4, t5)
 
161
ON t2.b=t4.b
 
162
WHERE t3.a>1 OR t3.c IS NULL;
 
163
a       b       a       b       a       b       a       b
 
164
3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
165
4       2       2       2       3       2       3       1
 
166
4       2       2       2       3       2       2       2
 
167
4       2       2       2       3       2       3       3
 
168
4       2       2       2       4       2       3       1
 
169
4       2       2       2       4       2       2       2
 
170
4       2       2       2       4       2       3       3
 
171
5       3       NULL    NULL    NULL    NULL    NULL    NULL
 
172
EXPLAIN EXTENDED
 
173
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
 
174
FROM t2
 
175
LEFT JOIN              
 
176
(t3, t4, t5)
 
177
ON t2.b=t4.b
 
178
WHERE (t3.a>1 OR t3.c IS NULL) AND 
 
179
(t5.a<3 OR t5.c IS NULL);
 
180
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
 
181
1       SIMPLE  t2      ALL     NULL    NULL    NULL    NULL    3       100.00  
 
182
1       SIMPLE  t3      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
183
1       SIMPLE  t4      ALL     NULL    NULL    NULL    NULL    2       100.00  
 
184
1       SIMPLE  t5      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
185
Warnings:
 
186
Note    1003    select "test"."t2"."a" AS "a","test"."t2"."b" AS "b","test"."t3"."a" AS "a","test"."t3"."b" AS "b","test"."t4"."a" AS "a","test"."t4"."b" AS "b","test"."t5"."a" AS "a","test"."t5"."b" AS "b" from "test"."t2" left join ("test"."t3" join "test"."t4" join "test"."t5") on(("test"."t4"."b" = "test"."t2"."b")) where ((("test"."t3"."a" > 1) or isnull("test"."t3"."c")) and (("test"."t5"."a" < 3) or isnull("test"."t5"."c")))
 
187
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,t5.a,t5.b
 
188
FROM t2
 
189
LEFT JOIN              
 
190
(t3, t4, t5)
 
191
ON t2.b=t4.b
 
192
WHERE (t3.a>1 OR t3.c IS NULL) AND 
 
193
(t5.a<3 OR t5.c IS NULL);
 
194
a       b       a       b       a       b       a       b
 
195
3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
196
4       2       2       2       3       2       2       2
 
197
4       2       2       2       4       2       2       2
 
198
5       3       NULL    NULL    NULL    NULL    NULL    NULL
 
199
SELECT t6.a,t6.b
 
200
FROM t6;
 
201
a       b
 
202
3       2
 
203
6       2
 
204
6       1
 
205
SELECT t7.a,t7.b
 
206
FROM t7;
 
207
a       b
 
208
1       1
 
209
2       2
 
210
SELECT t6.a,t6.b,t7.a,t7.b
 
211
FROM t6,t7;
 
212
a       b       a       b
 
213
3       2       1       1
 
214
3       2       2       2
 
215
6       2       1       1
 
216
6       2       2       2
 
217
6       1       1       1
 
218
6       1       2       2
 
219
SELECT t8.a,t8.b
 
220
FROM t8;
 
221
a       b
 
222
0       2
 
223
1       2
 
224
EXPLAIN EXTENDED
 
225
SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
 
226
FROM (t6, t7)
 
227
LEFT JOIN 
 
228
t8
 
229
ON t7.b=t8.b AND t6.b < 10;
 
230
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
 
231
1       SIMPLE  t7      ALL     NULL    NULL    NULL    NULL    2       100.00  
 
232
1       SIMPLE  t6      ALL     NULL    NULL    NULL    NULL    3       100.00  Using join buffer
 
233
1       SIMPLE  t8      ALL     NULL    NULL    NULL    NULL    2       100.00  
 
234
Warnings:
 
235
Note    1003    select "test"."t6"."a" AS "a","test"."t6"."b" AS "b","test"."t7"."a" AS "a","test"."t7"."b" AS "b","test"."t8"."a" AS "a","test"."t8"."b" AS "b" from "test"."t6" join "test"."t7" left join "test"."t8" on((("test"."t7"."b" = "test"."t8"."b") and ("test"."t6"."b" < 10))) where 1
 
236
SELECT t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
 
237
FROM (t6, t7)
 
238
LEFT JOIN 
 
239
t8
 
240
ON t7.b=t8.b AND t6.b < 10;
 
241
a       b       a       b       a       b
 
242
3       2       1       1       NULL    NULL
 
243
3       2       2       2       0       2
 
244
3       2       2       2       1       2
 
245
6       2       1       1       NULL    NULL
 
246
6       2       2       2       0       2
 
247
6       2       2       2       1       2
 
248
6       1       1       1       NULL    NULL
 
249
6       1       2       2       0       2
 
250
6       1       2       2       1       2
 
251
SELECT t5.a,t5.b
 
252
FROM t5;
 
253
a       b
 
254
3       1
 
255
2       2
 
256
3       3
 
257
SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
 
258
FROM t5 
 
259
LEFT JOIN 
 
260
 
261
(t6, t7)
 
262
LEFT JOIN 
 
263
t8
 
264
ON t7.b=t8.b AND t6.b < 10
 
265
)
 
266
ON t6.b >= 2 AND t5.b=t7.b;
 
267
a       b       a       b       a       b       a       b
 
268
3       1       3       2       1       1       NULL    NULL
 
269
3       1       6       2       1       1       NULL    NULL
 
270
2       2       3       2       2       2       0       2
 
271
2       2       3       2       2       2       1       2
 
272
2       2       6       2       2       2       0       2
 
273
2       2       6       2       2       2       1       2
 
274
3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
275
SELECT t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
 
276
FROM t5 
 
277
LEFT JOIN 
 
278
 
279
(t6, t7)
 
280
LEFT JOIN 
 
281
t8
 
282
ON t7.b=t8.b AND t6.b < 10
 
283
)
 
284
ON t6.b >= 2 AND t5.b=t7.b AND
 
285
(t8.a < 1 OR t8.c IS NULL);
 
286
a       b       a       b       a       b       a       b
 
287
3       1       3       2       1       1       NULL    NULL
 
288
3       1       6       2       1       1       NULL    NULL
 
289
2       2       3       2       2       2       0       2
 
290
2       2       6       2       2       2       0       2
 
291
3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
292
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
 
293
FROM t2
 
294
LEFT JOIN              
 
295
(t3, t4)
 
296
ON t3.a=1 AND t2.b=t4.b;
 
297
a       b       a       b       a       b
 
298
3       3       NULL    NULL    NULL    NULL
 
299
4       2       1       2       3       2
 
300
4       2       1       2       4       2
 
301
5       3       NULL    NULL    NULL    NULL
 
302
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
 
303
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
 
304
FROM t2
 
305
LEFT JOIN              
 
306
(t3, t4)
 
307
ON t3.a=1 AND t2.b=t4.b,
 
308
t5 
 
309
LEFT JOIN 
 
310
 
311
(t6, t7)
 
312
LEFT JOIN 
 
313
t8
 
314
ON t7.b=t8.b AND t6.b < 10
 
315
)
 
316
ON t6.b >= 2 AND t5.b=t7.b;
 
317
a       b       a       b       a       b       a       b       a       b       a       b       a       b
 
318
3       3       NULL    NULL    NULL    NULL    3       1       3       2       1       1       NULL    NULL
 
319
3       3       NULL    NULL    NULL    NULL    3       1       6       2       1       1       NULL    NULL
 
320
4       2       1       2       3       2       3       1       3       2       1       1       NULL    NULL
 
321
4       2       1       2       3       2       3       1       6       2       1       1       NULL    NULL
 
322
4       2       1       2       4       2       3       1       3       2       1       1       NULL    NULL
 
323
4       2       1       2       4       2       3       1       6       2       1       1       NULL    NULL
 
324
5       3       NULL    NULL    NULL    NULL    3       1       3       2       1       1       NULL    NULL
 
325
5       3       NULL    NULL    NULL    NULL    3       1       6       2       1       1       NULL    NULL
 
326
3       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       0       2
 
327
3       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       1       2
 
328
3       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       0       2
 
329
3       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       1       2
 
330
4       2       1       2       3       2       2       2       3       2       2       2       0       2
 
331
4       2       1       2       3       2       2       2       3       2       2       2       1       2
 
332
4       2       1       2       3       2       2       2       6       2       2       2       0       2
 
333
4       2       1       2       3       2       2       2       6       2       2       2       1       2
 
334
4       2       1       2       4       2       2       2       3       2       2       2       0       2
 
335
4       2       1       2       4       2       2       2       3       2       2       2       1       2
 
336
4       2       1       2       4       2       2       2       6       2       2       2       0       2
 
337
4       2       1       2       4       2       2       2       6       2       2       2       1       2
 
338
5       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       0       2
 
339
5       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       1       2
 
340
5       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       0       2
 
341
5       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       1       2
 
342
3       3       NULL    NULL    NULL    NULL    3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
343
4       2       1       2       3       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
344
4       2       1       2       4       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
345
5       3       NULL    NULL    NULL    NULL    3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
346
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
 
347
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
 
348
FROM t2
 
349
LEFT JOIN              
 
350
(t3, t4)
 
351
ON t3.a=1 AND t2.b=t4.b,
 
352
t5 
 
353
LEFT JOIN 
 
354
 
355
(t6, t7)
 
356
LEFT JOIN 
 
357
t8
 
358
ON t7.b=t8.b AND t6.b < 10
 
359
)
 
360
ON t6.b >= 2 AND t5.b=t7.b
 
361
WHERE t2.a > 3 AND
 
362
(t6.a < 6 OR t6.c IS NULL);
 
363
a       b       a       b       a       b       a       b       a       b       a       b       a       b
 
364
4       2       1       2       3       2       3       1       3       2       1       1       NULL    NULL
 
365
4       2       1       2       4       2       3       1       3       2       1       1       NULL    NULL
 
366
5       3       NULL    NULL    NULL    NULL    3       1       3       2       1       1       NULL    NULL
 
367
4       2       1       2       3       2       2       2       3       2       2       2       0       2
 
368
4       2       1       2       3       2       2       2       3       2       2       2       1       2
 
369
4       2       1       2       4       2       2       2       3       2       2       2       0       2
 
370
4       2       1       2       4       2       2       2       3       2       2       2       1       2
 
371
5       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       0       2
 
372
5       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       1       2
 
373
4       2       1       2       3       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
374
4       2       1       2       4       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
375
5       3       NULL    NULL    NULL    NULL    3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
376
SELECT t1.a,t1.b
 
377
FROM t1;
 
378
a       b
 
379
1       3
 
380
2       2
 
381
3       2
 
382
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
 
383
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
 
384
FROM t1
 
385
LEFT JOIN                
 
386
 
387
t2
 
388
LEFT JOIN              
 
389
(t3, t4)
 
390
ON t3.a=1 AND t2.b=t4.b,
 
391
t5 
 
392
LEFT JOIN 
 
393
 
394
(t6, t7)
 
395
LEFT JOIN 
 
396
t8
 
397
ON t7.b=t8.b AND t6.b < 10
 
398
)
 
399
ON t6.b >= 2 AND t5.b=t7.b 
 
400
)
 
401
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
 
402
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
 
403
(t1.a != 2);
 
404
a       b       a       b       a       b       a       b       a       b       a       b       a       b       a       b
 
405
1       3       3       3       NULL    NULL    NULL    NULL    3       1       3       2       1       1       NULL    NULL
 
406
1       3       3       3       NULL    NULL    NULL    NULL    3       1       6       2       1       1       NULL    NULL
 
407
1       3       3       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       0       2
 
408
1       3       3       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       1       2
 
409
1       3       3       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       0       2
 
410
1       3       3       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       1       2
 
411
1       3       3       3       NULL    NULL    NULL    NULL    3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
412
1       3       4       2       1       2       3       2       3       1       3       2       1       1       NULL    NULL
 
413
1       3       4       2       1       2       3       2       3       1       6       2       1       1       NULL    NULL
 
414
1       3       4       2       1       2       3       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
415
1       3       4       2       1       2       4       2       3       1       3       2       1       1       NULL    NULL
 
416
1       3       4       2       1       2       4       2       3       1       6       2       1       1       NULL    NULL
 
417
1       3       4       2       1       2       4       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
418
1       3       5       3       NULL    NULL    NULL    NULL    3       1       3       2       1       1       NULL    NULL
 
419
1       3       5       3       NULL    NULL    NULL    NULL    3       1       6       2       1       1       NULL    NULL
 
420
1       3       5       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       0       2
 
421
1       3       5       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       1       2
 
422
1       3       5       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       0       2
 
423
1       3       5       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       1       2
 
424
1       3       5       3       NULL    NULL    NULL    NULL    3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
425
2       2       NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL
 
426
3       2       3       3       NULL    NULL    NULL    NULL    3       1       3       2       1       1       NULL    NULL
 
427
3       2       3       3       NULL    NULL    NULL    NULL    3       1       6       2       1       1       NULL    NULL
 
428
3       2       3       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       0       2
 
429
3       2       3       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       1       2
 
430
3       2       3       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       0       2
 
431
3       2       3       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       1       2
 
432
3       2       3       3       NULL    NULL    NULL    NULL    3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
433
3       2       4       2       1       2       3       2       3       1       3       2       1       1       NULL    NULL
 
434
3       2       4       2       1       2       3       2       3       1       6       2       1       1       NULL    NULL
 
435
3       2       4       2       1       2       3       2       2       2       3       2       2       2       0       2
 
436
3       2       4       2       1       2       3       2       2       2       3       2       2       2       1       2
 
437
3       2       4       2       1       2       3       2       2       2       6       2       2       2       0       2
 
438
3       2       4       2       1       2       3       2       2       2       6       2       2       2       1       2
 
439
3       2       4       2       1       2       3       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
440
3       2       4       2       1       2       4       2       3       1       3       2       1       1       NULL    NULL
 
441
3       2       4       2       1       2       4       2       3       1       6       2       1       1       NULL    NULL
 
442
3       2       4       2       1       2       4       2       2       2       3       2       2       2       0       2
 
443
3       2       4       2       1       2       4       2       2       2       3       2       2       2       1       2
 
444
3       2       4       2       1       2       4       2       2       2       6       2       2       2       0       2
 
445
3       2       4       2       1       2       4       2       2       2       6       2       2       2       1       2
 
446
3       2       4       2       1       2       4       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
447
3       2       5       3       NULL    NULL    NULL    NULL    3       1       3       2       1       1       NULL    NULL
 
448
3       2       5       3       NULL    NULL    NULL    NULL    3       1       6       2       1       1       NULL    NULL
 
449
3       2       5       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       0       2
 
450
3       2       5       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       1       2
 
451
3       2       5       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       0       2
 
452
3       2       5       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       1       2
 
453
3       2       5       3       NULL    NULL    NULL    NULL    3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
454
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
 
455
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
 
456
FROM t1
 
457
LEFT JOIN                
 
458
 
459
t2
 
460
LEFT JOIN              
 
461
(t3, t4)
 
462
ON t3.a=1 AND t2.b=t4.b,
 
463
t5 
 
464
LEFT JOIN 
 
465
 
466
(t6, t7)
 
467
LEFT JOIN 
 
468
t8
 
469
ON t7.b=t8.b AND t6.b < 10
 
470
)
 
471
ON t6.b >= 2 AND t5.b=t7.b 
 
472
)
 
473
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
 
474
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
 
475
(t1.a != 2)
 
476
WHERE (t2.a >= 4 OR t2.c IS NULL);
 
477
a       b       a       b       a       b       a       b       a       b       a       b       a       b       a       b
 
478
1       3       4       2       1       2       3       2       3       1       3       2       1       1       NULL    NULL
 
479
1       3       4       2       1       2       3       2       3       1       6       2       1       1       NULL    NULL
 
480
1       3       4       2       1       2       3       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
481
1       3       4       2       1       2       4       2       3       1       3       2       1       1       NULL    NULL
 
482
1       3       4       2       1       2       4       2       3       1       6       2       1       1       NULL    NULL
 
483
1       3       4       2       1       2       4       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
484
1       3       5       3       NULL    NULL    NULL    NULL    3       1       3       2       1       1       NULL    NULL
 
485
1       3       5       3       NULL    NULL    NULL    NULL    3       1       6       2       1       1       NULL    NULL
 
486
1       3       5       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       0       2
 
487
1       3       5       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       1       2
 
488
1       3       5       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       0       2
 
489
1       3       5       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       1       2
 
490
1       3       5       3       NULL    NULL    NULL    NULL    3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
491
2       2       NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL
 
492
3       2       4       2       1       2       3       2       3       1       3       2       1       1       NULL    NULL
 
493
3       2       4       2       1       2       3       2       3       1       6       2       1       1       NULL    NULL
 
494
3       2       4       2       1       2       3       2       2       2       3       2       2       2       0       2
 
495
3       2       4       2       1       2       3       2       2       2       3       2       2       2       1       2
 
496
3       2       4       2       1       2       3       2       2       2       6       2       2       2       0       2
 
497
3       2       4       2       1       2       3       2       2       2       6       2       2       2       1       2
 
498
3       2       4       2       1       2       3       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
499
3       2       4       2       1       2       4       2       3       1       3       2       1       1       NULL    NULL
 
500
3       2       4       2       1       2       4       2       3       1       6       2       1       1       NULL    NULL
 
501
3       2       4       2       1       2       4       2       2       2       3       2       2       2       0       2
 
502
3       2       4       2       1       2       4       2       2       2       3       2       2       2       1       2
 
503
3       2       4       2       1       2       4       2       2       2       6       2       2       2       0       2
 
504
3       2       4       2       1       2       4       2       2       2       6       2       2       2       1       2
 
505
3       2       4       2       1       2       4       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
506
3       2       5       3       NULL    NULL    NULL    NULL    3       1       3       2       1       1       NULL    NULL
 
507
3       2       5       3       NULL    NULL    NULL    NULL    3       1       6       2       1       1       NULL    NULL
 
508
3       2       5       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       0       2
 
509
3       2       5       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       1       2
 
510
3       2       5       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       0       2
 
511
3       2       5       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       1       2
 
512
3       2       5       3       NULL    NULL    NULL    NULL    3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
513
SELECT t0.a,t0.b
 
514
FROM t0;
 
515
a       b
 
516
1       1
 
517
1       2
 
518
2       2
 
519
EXPLAIN EXTENDED
 
520
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
 
521
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
 
522
FROM t0,t1
 
523
LEFT JOIN                
 
524
 
525
t2
 
526
LEFT JOIN              
 
527
(t3, t4)
 
528
ON t3.a=1 AND t2.b=t4.b,
 
529
t5 
 
530
LEFT JOIN 
 
531
 
532
(t6, t7)
 
533
LEFT JOIN 
 
534
t8
 
535
ON t7.b=t8.b AND t6.b < 10
 
536
)
 
537
ON t6.b >= 2 AND t5.b=t7.b 
 
538
)
 
539
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
 
540
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
 
541
(t1.a != 2)
 
542
WHERE t0.a=1 AND
 
543
t0.b=t1.b AND          
 
544
(t2.a >= 4 OR t2.c IS NULL);
 
545
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
 
546
1       SIMPLE  t0      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
547
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where; Using join buffer
 
548
1       SIMPLE  t2      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
549
1       SIMPLE  t3      ALL     NULL    NULL    NULL    NULL    2       100.00  
 
550
1       SIMPLE  t4      ALL     NULL    NULL    NULL    NULL    2       100.00  
 
551
1       SIMPLE  t5      ALL     NULL    NULL    NULL    NULL    3       100.00  
 
552
1       SIMPLE  t7      ALL     NULL    NULL    NULL    NULL    2       100.00  
 
553
1       SIMPLE  t6      ALL     NULL    NULL    NULL    NULL    3       100.00  
 
554
1       SIMPLE  t8      ALL     NULL    NULL    NULL    NULL    2       100.00  
 
555
Warnings:
 
556
Note    1003    select "test"."t0"."a" AS "a","test"."t0"."b" AS "b","test"."t1"."a" AS "a","test"."t1"."b" AS "b","test"."t2"."a" AS "a","test"."t2"."b" AS "b","test"."t3"."a" AS "a","test"."t3"."b" AS "b","test"."t4"."a" AS "a","test"."t4"."b" AS "b","test"."t5"."a" AS "a","test"."t5"."b" AS "b","test"."t6"."a" AS "a","test"."t6"."b" AS "b","test"."t7"."a" AS "a","test"."t7"."b" AS "b","test"."t8"."a" AS "a","test"."t8"."b" AS "b" from "test"."t0" join "test"."t1" left join ("test"."t2" left join ("test"."t3" join "test"."t4") on((("test"."t4"."b" = "test"."t2"."b") and ("test"."t3"."a" = 1))) join "test"."t5" left join ("test"."t6" join "test"."t7" left join "test"."t8" on((("test"."t8"."b" = "test"."t5"."b") and ("test"."t6"."b" < 10)))) on((("test"."t7"."b" = "test"."t5"."b") and ("test"."t6"."b" >= 2)))) on(((("test"."t3"."b" = 2) or isnull("test"."t3"."c")) and (("test"."t6"."b" = 2) or isnull("test"."t6"."c")) and (("test"."t5"."b" = "test"."t0"."b") or isnull("test"."t3"."c") or isnull("test"."t6"."c") or isnull("test"."t8"."c")) and ("test"."t1"."a" <> 2))) where (("test"."t1"."b" = "test"."t0"."b") and ("test"."t0"."a" = 1) and (("test"."t2"."a" >= 4) or isnull("test"."t2"."c")))
 
557
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
 
558
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b
 
559
FROM t0,t1
 
560
LEFT JOIN                
 
561
 
562
t2
 
563
LEFT JOIN              
 
564
(t3, t4)
 
565
ON t3.a=1 AND t2.b=t4.b,
 
566
t5 
 
567
LEFT JOIN 
 
568
 
569
(t6, t7)
 
570
LEFT JOIN 
 
571
t8
 
572
ON t7.b=t8.b AND t6.b < 10
 
573
)
 
574
ON t6.b >= 2 AND t5.b=t7.b 
 
575
)
 
576
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
 
577
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
 
578
(t1.a != 2)
 
579
WHERE t0.a=1 AND
 
580
t0.b=t1.b AND          
 
581
(t2.a >= 4 OR t2.c IS NULL);
 
582
a       b       a       b       a       b       a       b       a       b       a       b       a       b       a       b       a       b
 
583
1       2       2       2       NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL
 
584
1       2       3       2       4       2       1       2       3       2       3       1       3       2       1       1       NULL    NULL
 
585
1       2       3       2       4       2       1       2       3       2       3       1       6       2       1       1       NULL    NULL
 
586
1       2       3       2       4       2       1       2       3       2       2       2       3       2       2       2       0       2
 
587
1       2       3       2       4       2       1       2       3       2       2       2       3       2       2       2       1       2
 
588
1       2       3       2       4       2       1       2       3       2       2       2       6       2       2       2       0       2
 
589
1       2       3       2       4       2       1       2       3       2       2       2       6       2       2       2       1       2
 
590
1       2       3       2       4       2       1       2       3       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
591
1       2       3       2       4       2       1       2       4       2       3       1       3       2       1       1       NULL    NULL
 
592
1       2       3       2       4       2       1       2       4       2       3       1       6       2       1       1       NULL    NULL
 
593
1       2       3       2       4       2       1       2       4       2       2       2       3       2       2       2       0       2
 
594
1       2       3       2       4       2       1       2       4       2       2       2       3       2       2       2       1       2
 
595
1       2       3       2       4       2       1       2       4       2       2       2       6       2       2       2       0       2
 
596
1       2       3       2       4       2       1       2       4       2       2       2       6       2       2       2       1       2
 
597
1       2       3       2       4       2       1       2       4       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
598
1       2       3       2       5       3       NULL    NULL    NULL    NULL    3       1       3       2       1       1       NULL    NULL
 
599
1       2       3       2       5       3       NULL    NULL    NULL    NULL    3       1       6       2       1       1       NULL    NULL
 
600
1       2       3       2       5       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       0       2
 
601
1       2       3       2       5       3       NULL    NULL    NULL    NULL    2       2       3       2       2       2       1       2
 
602
1       2       3       2       5       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       0       2
 
603
1       2       3       2       5       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       1       2
 
604
1       2       3       2       5       3       NULL    NULL    NULL    NULL    3       3       NULL    NULL    NULL    NULL    NULL    NULL
 
605
EXPLAIN EXTENDED
 
606
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
 
607
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
 
608
FROM t0,t1
 
609
LEFT JOIN                
 
610
 
611
t2
 
612
LEFT JOIN              
 
613
(t3, t4)
 
614
ON t3.a=1 AND t2.b=t4.b,
 
615
t5 
 
616
LEFT JOIN 
 
617
 
618
(t6, t7)
 
619
LEFT JOIN 
 
620
t8
 
621
ON t7.b=t8.b AND t6.b < 10
 
622
)
 
623
ON t6.b >= 2 AND t5.b=t7.b 
 
624
)
 
625
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
 
626
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
 
627
(t1.a != 2),
 
628
t9
 
629
WHERE t0.a=1 AND
 
630
t0.b=t1.b AND          
 
631
(t2.a >= 4 OR t2.c IS NULL) AND
 
632
(t3.a < 5 OR t3.c IS NULL) AND
 
633
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
 
634
(t5.a >=2 OR t5.c IS NULL) AND
 
635
(t6.a >=4 OR t6.c IS NULL) AND
 
636
(t7.a <= 2 OR t7.c IS NULL) AND
 
637
(t8.a < 1 OR t8.c IS NULL) AND
 
638
(t8.b=t9.b OR t8.c IS NULL) AND
 
639
(t9.a=1);
 
640
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
 
641
1       SIMPLE  t0      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
642
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where; Using join buffer
 
643
1       SIMPLE  t2      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
644
1       SIMPLE  t3      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
645
1       SIMPLE  t4      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
646
1       SIMPLE  t5      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
647
1       SIMPLE  t7      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
648
1       SIMPLE  t6      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
649
1       SIMPLE  t8      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
650
1       SIMPLE  t9      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where; Using join buffer
 
651
Warnings:
 
652
Note    1003    select "test"."t0"."a" AS "a","test"."t0"."b" AS "b","test"."t1"."a" AS "a","test"."t1"."b" AS "b","test"."t2"."a" AS "a","test"."t2"."b" AS "b","test"."t3"."a" AS "a","test"."t3"."b" AS "b","test"."t4"."a" AS "a","test"."t4"."b" AS "b","test"."t5"."a" AS "a","test"."t5"."b" AS "b","test"."t6"."a" AS "a","test"."t6"."b" AS "b","test"."t7"."a" AS "a","test"."t7"."b" AS "b","test"."t8"."a" AS "a","test"."t8"."b" AS "b","test"."t9"."a" AS "a","test"."t9"."b" AS "b" from "test"."t0" join "test"."t1" left join ("test"."t2" left join ("test"."t3" join "test"."t4") on((("test"."t4"."b" = "test"."t2"."b") and ("test"."t3"."a" = 1))) join "test"."t5" left join ("test"."t6" join "test"."t7" left join "test"."t8" on((("test"."t8"."b" = "test"."t5"."b") and ("test"."t6"."b" < 10)))) on((("test"."t7"."b" = "test"."t5"."b") and ("test"."t6"."b" >= 2)))) on(((("test"."t3"."b" = 2) or isnull("test"."t3"."c")) and (("test"."t6"."b" = 2) or isnull("test"."t6"."c")) and (("test"."t5"."b" = "test"."t0"."b") or isnull("test"."t3"."c") or isnull("test"."t6"."c") or isnull("test"."t8"."c")) and ("test"."t1"."a" <> 2))) join "test"."t9" where (("test"."t9"."a" = 1) and ("test"."t1"."b" = "test"."t0"."b") and ("test"."t0"."a" = 1) and (("test"."t2"."a" >= 4) or isnull("test"."t2"."c")) and (("test"."t3"."a" < 5) or isnull("test"."t3"."c")) and (("test"."t4"."b" = "test"."t3"."b") or isnull("test"."t3"."c") or isnull("test"."t4"."c")) and (("test"."t5"."a" >= 2) or isnull("test"."t5"."c")) and (("test"."t6"."a" >= 4) or isnull("test"."t6"."c")) and (("test"."t7"."a" <= 2) or isnull("test"."t7"."c")) and (("test"."t8"."a" < 1) or isnull("test"."t8"."c")) and (("test"."t9"."b" = "test"."t8"."b") or isnull("test"."t8"."c")))
 
653
SELECT t9.a,t9.b
 
654
FROM t9;
 
655
a       b
 
656
1       1
 
657
1       2
 
658
3       3
 
659
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
 
660
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
 
661
FROM t0,t1
 
662
LEFT JOIN                
 
663
 
664
t2
 
665
LEFT JOIN              
 
666
(t3, t4)
 
667
ON t3.a=1 AND t2.b=t4.b,
 
668
t5 
 
669
LEFT JOIN 
 
670
 
671
(t6, t7)
 
672
LEFT JOIN 
 
673
t8
 
674
ON t7.b=t8.b AND t6.b < 10
 
675
)
 
676
ON t6.b >= 2 AND t5.b=t7.b 
 
677
)
 
678
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
 
679
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
 
680
(t1.a != 2),
 
681
t9
 
682
WHERE t0.a=1 AND
 
683
t0.b=t1.b AND          
 
684
(t2.a >= 4 OR t2.c IS NULL) AND
 
685
(t3.a < 5 OR t3.c IS NULL) AND
 
686
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
 
687
(t5.a >=2 OR t5.c IS NULL) AND
 
688
(t6.a >=4 OR t6.c IS NULL) AND
 
689
(t7.a <= 2 OR t7.c IS NULL) AND
 
690
(t8.a < 1 OR t8.c IS NULL) AND
 
691
(t8.b=t9.b OR t8.c IS NULL) AND
 
692
(t9.a=1);
 
693
a       b       a       b       a       b       a       b       a       b       a       b       a       b       a       b       a       b       a       b
 
694
1       2       2       2       NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    1       1
 
695
1       2       3       2       4       2       1       2       3       2       3       1       6       2       1       1       NULL    NULL    1       1
 
696
1       2       3       2       4       2       1       2       3       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL    1       1
 
697
1       2       3       2       4       2       1       2       4       2       3       1       6       2       1       1       NULL    NULL    1       1
 
698
1       2       3       2       4       2       1       2       4       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL    1       1
 
699
1       2       3       2       5       3       NULL    NULL    NULL    NULL    3       1       6       2       1       1       NULL    NULL    1       1
 
700
1       2       3       2       5       3       NULL    NULL    NULL    NULL    3       3       NULL    NULL    NULL    NULL    NULL    NULL    1       1
 
701
1       2       2       2       NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    1       2
 
702
1       2       3       2       4       2       1       2       3       2       3       1       6       2       1       1       NULL    NULL    1       2
 
703
1       2       3       2       4       2       1       2       3       2       2       2       6       2       2       2       0       2       1       2
 
704
1       2       3       2       4       2       1       2       3       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL    1       2
 
705
1       2       3       2       4       2       1       2       4       2       3       1       6       2       1       1       NULL    NULL    1       2
 
706
1       2       3       2       4       2       1       2       4       2       2       2       6       2       2       2       0       2       1       2
 
707
1       2       3       2       4       2       1       2       4       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL    1       2
 
708
1       2       3       2       5       3       NULL    NULL    NULL    NULL    3       1       6       2       1       1       NULL    NULL    1       2
 
709
1       2       3       2       5       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       0       2       1       2
 
710
1       2       3       2       5       3       NULL    NULL    NULL    NULL    3       3       NULL    NULL    NULL    NULL    NULL    NULL    1       2
 
711
SELECT t1.a,t1.b
 
712
FROM t1;
 
713
a       b
 
714
1       3
 
715
2       2
 
716
3       2
 
717
SELECT t2.a,t2.b
 
718
FROM t2;
 
719
a       b
 
720
3       3
 
721
4       2
 
722
5       3
 
723
SELECT t3.a,t3.b
 
724
FROM t3;
 
725
a       b
 
726
1       2
 
727
2       2
 
728
SELECT t2.a,t2.b,t3.a,t3.b
 
729
FROM t2 
 
730
LEFT JOIN              
 
731
t3
 
732
ON t2.b=t3.b;
 
733
a       b       a       b
 
734
3       3       NULL    NULL
 
735
4       2       1       2
 
736
4       2       2       2
 
737
5       3       NULL    NULL
 
738
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b
 
739
FROM t1, t2 
 
740
LEFT JOIN              
 
741
t3
 
742
ON t2.b=t3.b
 
743
WHERE t1.a <= 2;
 
744
a       b       a       b       a       b
 
745
1       3       3       3       NULL    NULL
 
746
2       2       3       3       NULL    NULL
 
747
1       3       4       2       1       2
 
748
1       3       4       2       2       2
 
749
2       2       4       2       1       2
 
750
2       2       4       2       2       2
 
751
1       3       5       3       NULL    NULL
 
752
2       2       5       3       NULL    NULL
 
753
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b
 
754
FROM t1, t3 
 
755
RIGHT JOIN              
 
756
t2
 
757
ON t2.b=t3.b
 
758
WHERE t1.a <= 2;
 
759
a       b       a       b       a       b
 
760
1       3       3       3       NULL    NULL
 
761
2       2       3       3       NULL    NULL
 
762
1       3       4       2       1       2
 
763
1       3       4       2       2       2
 
764
2       2       4       2       1       2
 
765
2       2       4       2       2       2
 
766
1       3       5       3       NULL    NULL
 
767
2       2       5       3       NULL    NULL
 
768
SELECT t3.a,t3.b,t4.a,t4.b
 
769
FROM t3,t4;
 
770
a       b       a       b
 
771
1       2       3       2
 
772
2       2       3       2
 
773
1       2       4       2
 
774
2       2       4       2
 
775
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
 
776
FROM t2 
 
777
LEFT JOIN              
 
778
(t3, t4)
 
779
ON t3.a=1 AND t2.b=t4.b;
 
780
a       b       a       b       a       b
 
781
3       3       NULL    NULL    NULL    NULL
 
782
4       2       1       2       3       2
 
783
4       2       1       2       4       2
 
784
5       3       NULL    NULL    NULL    NULL
 
785
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
 
786
FROM t1, t2 
 
787
LEFT JOIN              
 
788
(t3, t4)
 
789
ON t3.a=1 AND t2.b=t4.b
 
790
WHERE t1.a <= 2;
 
791
a       b       a       b       a       b       a       b
 
792
1       3       3       3       NULL    NULL    NULL    NULL
 
793
2       2       3       3       NULL    NULL    NULL    NULL
 
794
1       3       4       2       1       2       3       2
 
795
1       3       4       2       1       2       4       2
 
796
2       2       4       2       1       2       3       2
 
797
2       2       4       2       1       2       4       2
 
798
1       3       5       3       NULL    NULL    NULL    NULL
 
799
2       2       5       3       NULL    NULL    NULL    NULL
 
800
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
 
801
FROM t1, (t3, t4) 
 
802
RIGHT JOIN              
 
803
t2
 
804
ON t3.a=1 AND t2.b=t4.b
 
805
WHERE t1.a <= 2;
 
806
a       b       a       b       a       b       a       b
 
807
1       3       3       3       NULL    NULL    NULL    NULL
 
808
2       2       3       3       NULL    NULL    NULL    NULL
 
809
1       3       4       2       1       2       3       2
 
810
1       3       4       2       1       2       4       2
 
811
2       2       4       2       1       2       3       2
 
812
2       2       4       2       1       2       4       2
 
813
1       3       5       3       NULL    NULL    NULL    NULL
 
814
2       2       5       3       NULL    NULL    NULL    NULL
 
815
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
 
816
FROM t1, (t3, t4)
 
817
RIGHT JOIN              
 
818
t2
 
819
ON t3.a=1 AND t2.b=t4.b
 
820
WHERE t1.a <= 2;
 
821
a       b       a       b       a       b       a       b
 
822
1       3       3       3       NULL    NULL    NULL    NULL
 
823
2       2       3       3       NULL    NULL    NULL    NULL
 
824
1       3       4       2       1       2       3       2
 
825
1       3       4       2       1       2       4       2
 
826
2       2       4       2       1       2       3       2
 
827
2       2       4       2       1       2       4       2
 
828
1       3       5       3       NULL    NULL    NULL    NULL
 
829
2       2       5       3       NULL    NULL    NULL    NULL
 
830
EXPLAIN EXTENDED
 
831
SELECT t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
 
832
FROM t1, (t3, t4)
 
833
RIGHT JOIN
 
834
t2
 
835
ON t3.a=1 AND t2.b=t4.b
 
836
WHERE t1.a <= 2;
 
837
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
 
838
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
839
1       SIMPLE  t2      ALL     NULL    NULL    NULL    NULL    3       100.00  Using join buffer
 
840
1       SIMPLE  t3      ALL     NULL    NULL    NULL    NULL    2       100.00  
 
841
1       SIMPLE  t4      ALL     NULL    NULL    NULL    NULL    2       100.00  
 
842
Warnings:
 
843
Note    1003    select "test"."t1"."a" AS "a","test"."t1"."b" AS "b","test"."t2"."a" AS "a","test"."t2"."b" AS "b","test"."t3"."a" AS "a","test"."t3"."b" AS "b","test"."t4"."a" AS "a","test"."t4"."b" AS "b" from "test"."t1" join "test"."t2" left join ("test"."t3" join "test"."t4") on((("test"."t4"."b" = "test"."t2"."b") and ("test"."t3"."a" = 1))) where ("test"."t1"."a" <= 2)
 
844
CREATE INDEX idx_b ON t2(b);
 
845
EXPLAIN EXTENDED
 
846
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
 
847
FROM (t3,t4)
 
848
LEFT JOIN              
 
849
(t1,t2)
 
850
ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
 
851
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
 
852
1       SIMPLE  t3      ALL     NULL    NULL    NULL    NULL    2       100.00  
 
853
1       SIMPLE  t4      ALL     NULL    NULL    NULL    NULL    2       100.00  Using join buffer
 
854
1       SIMPLE  t2      ref     idx_b   idx_b   5       test.t3.b       2       100.00  
 
855
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    3       100.00  
 
856
Warnings:
 
857
Note    1003    select "test"."t2"."a" AS "a","test"."t2"."b" AS "b","test"."t3"."a" AS "a","test"."t3"."b" AS "b","test"."t4"."a" AS "a","test"."t4"."b" AS "b" from "test"."t3" join "test"."t4" left join ("test"."t1" join "test"."t2") on((("test"."t3"."a" = 1) and ("test"."t3"."b" = "test"."t2"."b") and ("test"."t2"."b" = "test"."t4"."b"))) where 1
 
858
SELECT t2.a,t2.b,t3.a,t3.b,t4.a,t4.b
 
859
FROM (t3,t4)
 
860
LEFT JOIN              
 
861
(t1,t2)
 
862
ON t3.a=1 AND t3.b=t2.b AND t2.b=t4.b;
 
863
a       b       a       b       a       b
 
864
4       2       1       2       3       2
 
865
4       2       1       2       3       2
 
866
4       2       1       2       3       2
 
867
NULL    NULL    2       2       3       2
 
868
4       2       1       2       4       2
 
869
4       2       1       2       4       2
 
870
4       2       1       2       4       2
 
871
NULL    NULL    2       2       4       2
 
872
EXPLAIN EXTENDED
 
873
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
 
874
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
 
875
FROM t0,t1
 
876
LEFT JOIN                
 
877
 
878
t2
 
879
LEFT JOIN              
 
880
(t3, t4)
 
881
ON t3.a=1 AND t2.b=t4.b,
 
882
t5 
 
883
LEFT JOIN 
 
884
 
885
(t6, t7)
 
886
LEFT JOIN 
 
887
t8
 
888
ON t7.b=t8.b AND t6.b < 10
 
889
)
 
890
ON t6.b >= 2 AND t5.b=t7.b 
 
891
)
 
892
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
 
893
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
 
894
(t1.a != 2),
 
895
t9
 
896
WHERE t0.a=1 AND
 
897
t0.b=t1.b AND          
 
898
(t2.a >= 4 OR t2.c IS NULL) AND
 
899
(t3.a < 5 OR t3.c IS NULL) AND
 
900
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
 
901
(t5.a >=2 OR t5.c IS NULL) AND
 
902
(t6.a >=4 OR t6.c IS NULL) AND
 
903
(t7.a <= 2 OR t7.c IS NULL) AND
 
904
(t8.a < 1 OR t8.c IS NULL) AND
 
905
(t8.b=t9.b OR t8.c IS NULL) AND
 
906
(t9.a=1);
 
907
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
 
908
1       SIMPLE  t0      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
909
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where; Using join buffer
 
910
1       SIMPLE  t2      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
911
1       SIMPLE  t3      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
912
1       SIMPLE  t4      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
913
1       SIMPLE  t5      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
914
1       SIMPLE  t7      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
915
1       SIMPLE  t6      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
916
1       SIMPLE  t8      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
917
1       SIMPLE  t9      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where; Using join buffer
 
918
Warnings:
 
919
Note    1003    select "test"."t0"."a" AS "a","test"."t0"."b" AS "b","test"."t1"."a" AS "a","test"."t1"."b" AS "b","test"."t2"."a" AS "a","test"."t2"."b" AS "b","test"."t3"."a" AS "a","test"."t3"."b" AS "b","test"."t4"."a" AS "a","test"."t4"."b" AS "b","test"."t5"."a" AS "a","test"."t5"."b" AS "b","test"."t6"."a" AS "a","test"."t6"."b" AS "b","test"."t7"."a" AS "a","test"."t7"."b" AS "b","test"."t8"."a" AS "a","test"."t8"."b" AS "b","test"."t9"."a" AS "a","test"."t9"."b" AS "b" from "test"."t0" join "test"."t1" left join ("test"."t2" left join ("test"."t3" join "test"."t4") on((("test"."t4"."b" = "test"."t2"."b") and ("test"."t3"."a" = 1))) join "test"."t5" left join ("test"."t6" join "test"."t7" left join "test"."t8" on((("test"."t8"."b" = "test"."t5"."b") and ("test"."t6"."b" < 10)))) on((("test"."t7"."b" = "test"."t5"."b") and ("test"."t6"."b" >= 2)))) on(((("test"."t3"."b" = 2) or isnull("test"."t3"."c")) and (("test"."t6"."b" = 2) or isnull("test"."t6"."c")) and (("test"."t5"."b" = "test"."t0"."b") or isnull("test"."t3"."c") or isnull("test"."t6"."c") or isnull("test"."t8"."c")) and ("test"."t1"."a" <> 2))) join "test"."t9" where (("test"."t9"."a" = 1) and ("test"."t1"."b" = "test"."t0"."b") and ("test"."t0"."a" = 1) and (("test"."t2"."a" >= 4) or isnull("test"."t2"."c")) and (("test"."t3"."a" < 5) or isnull("test"."t3"."c")) and (("test"."t4"."b" = "test"."t3"."b") or isnull("test"."t3"."c") or isnull("test"."t4"."c")) and (("test"."t5"."a" >= 2) or isnull("test"."t5"."c")) and (("test"."t6"."a" >= 4) or isnull("test"."t6"."c")) and (("test"."t7"."a" <= 2) or isnull("test"."t7"."c")) and (("test"."t8"."a" < 1) or isnull("test"."t8"."c")) and (("test"."t9"."b" = "test"."t8"."b") or isnull("test"."t8"."c")))
 
920
CREATE INDEX idx_b ON t4(b);
 
921
CREATE INDEX idx_b ON t5(b);
 
922
EXPLAIN EXTENDED
 
923
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
 
924
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
 
925
FROM t0,t1
 
926
LEFT JOIN                
 
927
 
928
t2
 
929
LEFT JOIN              
 
930
(t3, t4)
 
931
ON t3.a=1 AND t2.b=t4.b,
 
932
t5 
 
933
LEFT JOIN 
 
934
 
935
(t6, t7)
 
936
LEFT JOIN 
 
937
t8
 
938
ON t7.b=t8.b AND t6.b < 10
 
939
)
 
940
ON t6.b >= 2 AND t5.b=t7.b 
 
941
)
 
942
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
 
943
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
 
944
(t1.a != 2),
 
945
t9
 
946
WHERE t0.a=1 AND
 
947
t0.b=t1.b AND          
 
948
(t2.a >= 4 OR t2.c IS NULL) AND
 
949
(t3.a < 5 OR t3.c IS NULL) AND
 
950
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
 
951
(t5.a >=2 OR t5.c IS NULL) AND
 
952
(t6.a >=4 OR t6.c IS NULL) AND
 
953
(t7.a <= 2 OR t7.c IS NULL) AND
 
954
(t8.a < 1 OR t8.c IS NULL) AND
 
955
(t8.b=t9.b OR t8.c IS NULL) AND
 
956
(t9.a=1);
 
957
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
 
958
1       SIMPLE  t0      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
959
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where; Using join buffer
 
960
1       SIMPLE  t2      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
961
1       SIMPLE  t3      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
962
1       SIMPLE  t4      ref     idx_b   idx_b   5       test.t2.b       2       100.00  Using where
 
963
1       SIMPLE  t5      ALL     idx_b   NULL    NULL    NULL    3       100.00  Using where
 
964
1       SIMPLE  t7      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
965
1       SIMPLE  t6      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
966
1       SIMPLE  t8      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
967
1       SIMPLE  t9      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where; Using join buffer
 
968
Warnings:
 
969
Note    1003    select "test"."t0"."a" AS "a","test"."t0"."b" AS "b","test"."t1"."a" AS "a","test"."t1"."b" AS "b","test"."t2"."a" AS "a","test"."t2"."b" AS "b","test"."t3"."a" AS "a","test"."t3"."b" AS "b","test"."t4"."a" AS "a","test"."t4"."b" AS "b","test"."t5"."a" AS "a","test"."t5"."b" AS "b","test"."t6"."a" AS "a","test"."t6"."b" AS "b","test"."t7"."a" AS "a","test"."t7"."b" AS "b","test"."t8"."a" AS "a","test"."t8"."b" AS "b","test"."t9"."a" AS "a","test"."t9"."b" AS "b" from "test"."t0" join "test"."t1" left join ("test"."t2" left join ("test"."t3" join "test"."t4") on((("test"."t4"."b" = "test"."t2"."b") and ("test"."t3"."a" = 1))) join "test"."t5" left join ("test"."t6" join "test"."t7" left join "test"."t8" on((("test"."t8"."b" = "test"."t5"."b") and ("test"."t6"."b" < 10)))) on((("test"."t7"."b" = "test"."t5"."b") and ("test"."t6"."b" >= 2)))) on(((("test"."t3"."b" = 2) or isnull("test"."t3"."c")) and (("test"."t6"."b" = 2) or isnull("test"."t6"."c")) and (("test"."t5"."b" = "test"."t0"."b") or isnull("test"."t3"."c") or isnull("test"."t6"."c") or isnull("test"."t8"."c")) and ("test"."t1"."a" <> 2))) join "test"."t9" where (("test"."t9"."a" = 1) and ("test"."t1"."b" = "test"."t0"."b") and ("test"."t0"."a" = 1) and (("test"."t2"."a" >= 4) or isnull("test"."t2"."c")) and (("test"."t3"."a" < 5) or isnull("test"."t3"."c")) and (("test"."t4"."b" = "test"."t3"."b") or isnull("test"."t3"."c") or isnull("test"."t4"."c")) and (("test"."t5"."a" >= 2) or isnull("test"."t5"."c")) and (("test"."t6"."a" >= 4) or isnull("test"."t6"."c")) and (("test"."t7"."a" <= 2) or isnull("test"."t7"."c")) and (("test"."t8"."a" < 1) or isnull("test"."t8"."c")) and (("test"."t9"."b" = "test"."t8"."b") or isnull("test"."t8"."c")))
 
970
CREATE INDEX idx_b ON t8(b);
 
971
EXPLAIN EXTENDED
 
972
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
 
973
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
 
974
FROM t0,t1
 
975
LEFT JOIN                
 
976
 
977
t2
 
978
LEFT JOIN              
 
979
(t3, t4)
 
980
ON t3.a=1 AND t2.b=t4.b,
 
981
t5 
 
982
LEFT JOIN 
 
983
 
984
(t6, t7)
 
985
LEFT JOIN 
 
986
t8
 
987
ON t7.b=t8.b AND t6.b < 10
 
988
)
 
989
ON t6.b >= 2 AND t5.b=t7.b 
 
990
)
 
991
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
 
992
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
 
993
(t1.a != 2),
 
994
t9
 
995
WHERE t0.a=1 AND
 
996
t0.b=t1.b AND          
 
997
(t2.a >= 4 OR t2.c IS NULL) AND
 
998
(t3.a < 5 OR t3.c IS NULL) AND
 
999
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
 
1000
(t5.a >=2 OR t5.c IS NULL) AND
 
1001
(t6.a >=4 OR t6.c IS NULL) AND
 
1002
(t7.a <= 2 OR t7.c IS NULL) AND
 
1003
(t8.a < 1 OR t8.c IS NULL) AND
 
1004
(t8.b=t9.b OR t8.c IS NULL) AND
 
1005
(t9.a=1);
 
1006
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
 
1007
1       SIMPLE  t0      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
1008
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where; Using join buffer
 
1009
1       SIMPLE  t2      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
1010
1       SIMPLE  t3      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
1011
1       SIMPLE  t4      ref     idx_b   idx_b   5       test.t2.b       2       100.00  Using where
 
1012
1       SIMPLE  t5      ALL     idx_b   NULL    NULL    NULL    3       100.00  Using where
 
1013
1       SIMPLE  t7      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
1014
1       SIMPLE  t6      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
1015
1       SIMPLE  t8      ref     idx_b   idx_b   5       test.t5.b       2       100.00  Using where
 
1016
1       SIMPLE  t9      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where; Using join buffer
 
1017
Warnings:
 
1018
Note    1003    select "test"."t0"."a" AS "a","test"."t0"."b" AS "b","test"."t1"."a" AS "a","test"."t1"."b" AS "b","test"."t2"."a" AS "a","test"."t2"."b" AS "b","test"."t3"."a" AS "a","test"."t3"."b" AS "b","test"."t4"."a" AS "a","test"."t4"."b" AS "b","test"."t5"."a" AS "a","test"."t5"."b" AS "b","test"."t6"."a" AS "a","test"."t6"."b" AS "b","test"."t7"."a" AS "a","test"."t7"."b" AS "b","test"."t8"."a" AS "a","test"."t8"."b" AS "b","test"."t9"."a" AS "a","test"."t9"."b" AS "b" from "test"."t0" join "test"."t1" left join ("test"."t2" left join ("test"."t3" join "test"."t4") on((("test"."t4"."b" = "test"."t2"."b") and ("test"."t3"."a" = 1))) join "test"."t5" left join ("test"."t6" join "test"."t7" left join "test"."t8" on((("test"."t8"."b" = "test"."t5"."b") and ("test"."t6"."b" < 10)))) on((("test"."t7"."b" = "test"."t5"."b") and ("test"."t6"."b" >= 2)))) on(((("test"."t3"."b" = 2) or isnull("test"."t3"."c")) and (("test"."t6"."b" = 2) or isnull("test"."t6"."c")) and (("test"."t5"."b" = "test"."t0"."b") or isnull("test"."t3"."c") or isnull("test"."t6"."c") or isnull("test"."t8"."c")) and ("test"."t1"."a" <> 2))) join "test"."t9" where (("test"."t9"."a" = 1) and ("test"."t1"."b" = "test"."t0"."b") and ("test"."t0"."a" = 1) and (("test"."t2"."a" >= 4) or isnull("test"."t2"."c")) and (("test"."t3"."a" < 5) or isnull("test"."t3"."c")) and (("test"."t4"."b" = "test"."t3"."b") or isnull("test"."t3"."c") or isnull("test"."t4"."c")) and (("test"."t5"."a" >= 2) or isnull("test"."t5"."c")) and (("test"."t6"."a" >= 4) or isnull("test"."t6"."c")) and (("test"."t7"."a" <= 2) or isnull("test"."t7"."c")) and (("test"."t8"."a" < 1) or isnull("test"."t8"."c")) and (("test"."t9"."b" = "test"."t8"."b") or isnull("test"."t8"."c")))
 
1019
CREATE INDEX idx_b ON t1(b);
 
1020
CREATE INDEX idx_a ON t0(a);
 
1021
EXPLAIN EXTENDED
 
1022
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
 
1023
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
 
1024
FROM t0,t1
 
1025
LEFT JOIN                
 
1026
 
1027
t2
 
1028
LEFT JOIN              
 
1029
(t3, t4)
 
1030
ON t3.a=1 AND t2.b=t4.b,
 
1031
t5 
 
1032
LEFT JOIN 
 
1033
 
1034
(t6, t7)
 
1035
LEFT JOIN 
 
1036
t8
 
1037
ON t7.b=t8.b AND t6.b < 10
 
1038
)
 
1039
ON t6.b >= 2 AND t5.b=t7.b 
 
1040
)
 
1041
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
 
1042
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
 
1043
(t1.a != 2),
 
1044
t9
 
1045
WHERE t0.a=1 AND
 
1046
t0.b=t1.b AND          
 
1047
(t2.a >= 4 OR t2.c IS NULL) AND
 
1048
(t3.a < 5 OR t3.c IS NULL) AND
 
1049
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
 
1050
(t5.a >=2 OR t5.c IS NULL) AND
 
1051
(t6.a >=4 OR t6.c IS NULL) AND
 
1052
(t7.a <= 2 OR t7.c IS NULL) AND
 
1053
(t8.a < 1 OR t8.c IS NULL) AND
 
1054
(t8.b=t9.b OR t8.c IS NULL) AND
 
1055
(t9.a=1);
 
1056
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
 
1057
1       SIMPLE  t0      ref     idx_a   idx_a   5       const   1       100.00  
 
1058
1       SIMPLE  t1      ref     idx_b   idx_b   5       test.t0.b       2       100.00  
 
1059
1       SIMPLE  t2      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
1060
1       SIMPLE  t3      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
1061
1       SIMPLE  t4      ref     idx_b   idx_b   5       test.t2.b       2       100.00  Using where
 
1062
1       SIMPLE  t5      ALL     idx_b   NULL    NULL    NULL    3       100.00  Using where
 
1063
1       SIMPLE  t7      ALL     NULL    NULL    NULL    NULL    2       100.00  Using where
 
1064
1       SIMPLE  t6      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
 
1065
1       SIMPLE  t8      ref     idx_b   idx_b   5       test.t5.b       2       100.00  Using where
 
1066
1       SIMPLE  t9      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where; Using join buffer
 
1067
Warnings:
 
1068
Note    1003    select "test"."t0"."a" AS "a","test"."t0"."b" AS "b","test"."t1"."a" AS "a","test"."t1"."b" AS "b","test"."t2"."a" AS "a","test"."t2"."b" AS "b","test"."t3"."a" AS "a","test"."t3"."b" AS "b","test"."t4"."a" AS "a","test"."t4"."b" AS "b","test"."t5"."a" AS "a","test"."t5"."b" AS "b","test"."t6"."a" AS "a","test"."t6"."b" AS "b","test"."t7"."a" AS "a","test"."t7"."b" AS "b","test"."t8"."a" AS "a","test"."t8"."b" AS "b","test"."t9"."a" AS "a","test"."t9"."b" AS "b" from "test"."t0" join "test"."t1" left join ("test"."t2" left join ("test"."t3" join "test"."t4") on((("test"."t4"."b" = "test"."t2"."b") and ("test"."t3"."a" = 1))) join "test"."t5" left join ("test"."t6" join "test"."t7" left join "test"."t8" on((("test"."t8"."b" = "test"."t5"."b") and ("test"."t6"."b" < 10)))) on((("test"."t7"."b" = "test"."t5"."b") and ("test"."t6"."b" >= 2)))) on(((("test"."t3"."b" = 2) or isnull("test"."t3"."c")) and (("test"."t6"."b" = 2) or isnull("test"."t6"."c")) and (("test"."t5"."b" = "test"."t0"."b") or isnull("test"."t3"."c") or isnull("test"."t6"."c") or isnull("test"."t8"."c")) and ("test"."t1"."a" <> 2))) join "test"."t9" where (("test"."t9"."a" = 1) and ("test"."t1"."b" = "test"."t0"."b") and ("test"."t0"."a" = 1) and (("test"."t2"."a" >= 4) or isnull("test"."t2"."c")) and (("test"."t3"."a" < 5) or isnull("test"."t3"."c")) and (("test"."t4"."b" = "test"."t3"."b") or isnull("test"."t3"."c") or isnull("test"."t4"."c")) and (("test"."t5"."a" >= 2) or isnull("test"."t5"."c")) and (("test"."t6"."a" >= 4) or isnull("test"."t6"."c")) and (("test"."t7"."a" <= 2) or isnull("test"."t7"."c")) and (("test"."t8"."a" < 1) or isnull("test"."t8"."c")) and (("test"."t9"."b" = "test"."t8"."b") or isnull("test"."t8"."c")))
 
1069
SELECT t0.a,t0.b,t1.a,t1.b,t2.a,t2.b,t3.a,t3.b,t4.a,t4.b,
 
1070
t5.a,t5.b,t6.a,t6.b,t7.a,t7.b,t8.a,t8.b,t9.a,t9.b
 
1071
FROM t0,t1
 
1072
LEFT JOIN                
 
1073
 
1074
t2
 
1075
LEFT JOIN              
 
1076
(t3, t4)
 
1077
ON t3.a=1 AND t2.b=t4.b,
 
1078
t5 
 
1079
LEFT JOIN 
 
1080
 
1081
(t6, t7)
 
1082
LEFT JOIN 
 
1083
t8
 
1084
ON t7.b=t8.b AND t6.b < 10
 
1085
)
 
1086
ON t6.b >= 2 AND t5.b=t7.b 
 
1087
)
 
1088
ON (t3.b=2 OR t3.c IS NULL) AND (t6.b=2 OR t6.c IS NULL) AND
 
1089
(t1.b=t5.b OR t3.c IS NULL OR t6.c IS NULL or t8.c IS NULL) AND
 
1090
(t1.a != 2),
 
1091
t9
 
1092
WHERE t0.a=1 AND
 
1093
t0.b=t1.b AND          
 
1094
(t2.a >= 4 OR t2.c IS NULL) AND
 
1095
(t3.a < 5 OR t3.c IS NULL) AND
 
1096
(t3.b=t4.b OR t3.c IS NULL OR t4.c IS NULL) AND
 
1097
(t5.a >=2 OR t5.c IS NULL) AND
 
1098
(t6.a >=4 OR t6.c IS NULL) AND
 
1099
(t7.a <= 2 OR t7.c IS NULL) AND
 
1100
(t8.a < 1 OR t8.c IS NULL) AND
 
1101
(t8.b=t9.b OR t8.c IS NULL) AND
 
1102
(t9.a=1);
 
1103
a       b       a       b       a       b       a       b       a       b       a       b       a       b       a       b       a       b       a       b
 
1104
1       2       2       2       NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    1       1
 
1105
1       2       3       2       4       2       1       2       3       2       3       1       6       2       1       1       NULL    NULL    1       1
 
1106
1       2       3       2       4       2       1       2       3       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL    1       1
 
1107
1       2       3       2       4       2       1       2       4       2       3       1       6       2       1       1       NULL    NULL    1       1
 
1108
1       2       3       2       4       2       1       2       4       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL    1       1
 
1109
1       2       3       2       5       3       NULL    NULL    NULL    NULL    3       1       6       2       1       1       NULL    NULL    1       1
 
1110
1       2       3       2       5       3       NULL    NULL    NULL    NULL    3       3       NULL    NULL    NULL    NULL    NULL    NULL    1       1
 
1111
1       2       2       2       NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    1       2
 
1112
1       2       3       2       4       2       1       2       3       2       3       1       6       2       1       1       NULL    NULL    1       2
 
1113
1       2       3       2       4       2       1       2       3       2       2       2       6       2       2       2       0       2       1       2
 
1114
1       2       3       2       4       2       1       2       3       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL    1       2
 
1115
1       2       3       2       4       2       1       2       4       2       3       1       6       2       1       1       NULL    NULL    1       2
 
1116
1       2       3       2       4       2       1       2       4       2       2       2       6       2       2       2       0       2       1       2
 
1117
1       2       3       2       4       2       1       2       4       2       3       3       NULL    NULL    NULL    NULL    NULL    NULL    1       2
 
1118
1       2       3       2       5       3       NULL    NULL    NULL    NULL    3       1       6       2       1       1       NULL    NULL    1       2
 
1119
1       2       3       2       5       3       NULL    NULL    NULL    NULL    2       2       6       2       2       2       0       2       1       2
 
1120
1       2       3       2       5       3       NULL    NULL    NULL    NULL    3       3       NULL    NULL    NULL    NULL    NULL    NULL    1       2
 
1121
SELECT t2.a,t2.b
 
1122
FROM t2;
 
1123
a       b
 
1124
3       3
 
1125
4       2
 
1126
5       3
 
1127
SELECT t3.a,t3.b
 
1128
FROM t3;
 
1129
a       b
 
1130
1       2
 
1131
2       2
 
1132
SELECT t2.a,t2.b,t3.a,t3.b
 
1133
FROM t2 LEFT JOIN t3 ON t2.b=t3.b
 
1134
WHERE t2.a = 4 OR (t2.a > 4 AND t3.a IS NULL);
 
1135
a       b       a       b
 
1136
4       2       1       2
 
1137
4       2       2       2
 
1138
5       3       NULL    NULL
 
1139
SELECT t2.a,t2.b,t3.a,t3.b
 
1140
FROM t2 LEFT JOIN (t3) ON t2.b=t3.b
 
1141
WHERE t2.a = 4 OR (t2.a > 4 AND t3.a IS NULL);
 
1142
a       b       a       b
 
1143
4       2       1       2
 
1144
4       2       2       2
 
1145
5       3       NULL    NULL
 
1146
ALTER TABLE t3
 
1147
CHANGE COLUMN a a1 int,
 
1148
CHANGE COLUMN c c1 int;
 
1149
SELECT t2.a,t2.b,t3.a1,t3.b
 
1150
FROM t2 LEFT JOIN t3 ON t2.b=t3.b
 
1151
WHERE t2.a = 4 OR (t2.a > 4 AND t3.a1 IS NULL);
 
1152
a       b       a1      b
 
1153
4       2       1       2
 
1154
4       2       2       2
 
1155
5       3       NULL    NULL
 
1156
SELECT t2.a,t2.b,t3.a1,t3.b
 
1157
FROM t2 NATURAL LEFT JOIN t3
 
1158
WHERE t2.a = 4 OR (t2.a > 4 AND t3.a1 IS NULL);
 
1159
a       b       a1      b
 
1160
4       2       1       2
 
1161
4       2       2       2
 
1162
5       3       NULL    NULL
 
1163
DROP TABLE t0,t1,t2,t3,t4,t5,t6,t7,t8,t9;
 
1164
CREATE TABLE t1 (a int);
 
1165
CREATE TABLE t2 (a int);
 
1166
CREATE TABLE t3 (a int);
 
1167
INSERT INTO t1 VALUES (1);
 
1168
INSERT INTO t2 VALUES (2);
 
1169
INSERT INTO t3 VALUES (2);
 
1170
INSERT INTO t1 VALUES (2);
 
1171
SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON t2.a=t3.a) ON t1.a=t3.a;
 
1172
a       a       a
 
1173
1       NULL    NULL
 
1174
2       2       2
 
1175
SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
 
1176
a       a       a
 
1177
1       NULL    NULL
 
1178
2       2       2
 
1179
DELETE FROM t1 WHERE a=2;
 
1180
SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
 
1181
a       a       a
 
1182
1       NULL    NULL
 
1183
DELETE FROM t2;
 
1184
SELECT * FROM t1 LEFT JOIN t2 LEFT JOIN t3 ON t2.a=t3.a ON t1.a=t3.a;
 
1185
a       a       a
 
1186
1       NULL    NULL
 
1187
DROP TABLE t1,t2,t3;
 
1188
CREATE TABLE t1(a int, key (a));
 
1189
CREATE TABLE t2(b int, key (b));
 
1190
CREATE TABLE t3(c int, key (c));
 
1191
INSERT INTO t1 VALUES (NULL), (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
 
1192
(10), (11), (12), (13), (14), (15), (16), (17), (18), (19);
 
1193
INSERT INTO t2 VALUES (NULL), (0), (1), (2), (3), (4), (5), (6), (7), (8), (9),
 
1194
(10), (11), (12), (13), (14), (15), (16), (17), (18), (19);
 
1195
INSERT INTO t3 VALUES (0), (1), (2), (3), (4), (5);
 
1196
EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON c < 3 and b = c;
 
1197
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1198
1       SIMPLE  t1      index   NULL    a       5       NULL    21      Using index
 
1199
1       SIMPLE  t3      index   c       c       5       NULL    6       Using index
 
1200
1       SIMPLE  t2      ref     b       b       5       test.t3.c       2       Using index
 
1201
EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
 
1202
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1203
1       SIMPLE  t1      index   NULL    a       5       NULL    21      Using index
 
1204
1       SIMPLE  t3      index   c       c       5       NULL    6       Using index
 
1205
1       SIMPLE  t2      ref     b       b       5       test.t3.c       2       Using index
 
1206
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
 
1207
a       b       c
 
1208
NULL    0       0
 
1209
NULL    1       1
 
1210
NULL    2       2
 
1211
0       0       0
 
1212
0       1       1
 
1213
0       2       2
 
1214
1       0       0
 
1215
1       1       1
 
1216
1       2       2
 
1217
2       0       0
 
1218
2       1       1
 
1219
2       2       2
 
1220
3       0       0
 
1221
3       1       1
 
1222
3       2       2
 
1223
4       0       0
 
1224
4       1       1
 
1225
4       2       2
 
1226
5       0       0
 
1227
5       1       1
 
1228
5       2       2
 
1229
6       0       0
 
1230
6       1       1
 
1231
6       2       2
 
1232
7       0       0
 
1233
7       1       1
 
1234
7       2       2
 
1235
8       0       0
 
1236
8       1       1
 
1237
8       2       2
 
1238
9       0       0
 
1239
9       1       1
 
1240
9       2       2
 
1241
10      0       0
 
1242
10      1       1
 
1243
10      2       2
 
1244
11      0       0
 
1245
11      1       1
 
1246
11      2       2
 
1247
12      0       0
 
1248
12      1       1
 
1249
12      2       2
 
1250
13      0       0
 
1251
13      1       1
 
1252
13      2       2
 
1253
14      0       0
 
1254
14      1       1
 
1255
14      2       2
 
1256
15      0       0
 
1257
15      1       1
 
1258
15      2       2
 
1259
16      0       0
 
1260
16      1       1
 
1261
16      2       2
 
1262
17      0       0
 
1263
17      1       1
 
1264
17      2       2
 
1265
18      0       0
 
1266
18      1       1
 
1267
18      2       2
 
1268
19      0       0
 
1269
19      1       1
 
1270
19      2       2
 
1271
DELETE FROM t3;
 
1272
EXPLAIN SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
 
1273
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1274
1       SIMPLE  t1      index   NULL    a       5       NULL    21      Using index
 
1275
1       SIMPLE  t3      index   c       c       5       NULL    0       Using index
 
1276
1       SIMPLE  t2      ref     b       b       5       test.t3.c       2       Using index
 
1277
SELECT a, b, c FROM t1 LEFT JOIN (t2, t3) ON b < 3 and b = c;
 
1278
a       b       c
 
1279
NULL    NULL    NULL
 
1280
0       NULL    NULL
 
1281
1       NULL    NULL
 
1282
2       NULL    NULL
 
1283
3       NULL    NULL
 
1284
4       NULL    NULL
 
1285
5       NULL    NULL
 
1286
6       NULL    NULL
 
1287
7       NULL    NULL
 
1288
8       NULL    NULL
 
1289
9       NULL    NULL
 
1290
10      NULL    NULL
 
1291
11      NULL    NULL
 
1292
12      NULL    NULL
 
1293
13      NULL    NULL
 
1294
14      NULL    NULL
 
1295
15      NULL    NULL
 
1296
16      NULL    NULL
 
1297
17      NULL    NULL
 
1298
18      NULL    NULL
 
1299
19      NULL    NULL
 
1300
DROP TABLE t1,t2,t3;
 
1301
CREATE TABLE t1 (c11 int);
 
1302
CREATE TABLE t2 (c21 int);
 
1303
CREATE TABLE t3 (c31 int);
 
1304
INSERT INTO t1 VALUES (4), (5);
 
1305
SELECT * FROM t1 LEFT JOIN t2 ON c11=c21;
 
1306
c11     c21
 
1307
4       NULL
 
1308
5       NULL
 
1309
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 ON c11=c21;
 
1310
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1311
1       SIMPLE  t2      system  NULL    NULL    NULL    NULL    0       const row not found
 
1312
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    2       
 
1313
SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON c21=c31) ON c11=c21;
 
1314
c11     c21     c31
 
1315
4       NULL    NULL
 
1316
5       NULL    NULL
 
1317
EXPLAIN SELECT * FROM t1 LEFT JOIN (t2 LEFT JOIN t3 ON c21=c31) ON c11=c21;
 
1318
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1319
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    2       
 
1320
1       SIMPLE  t2      ALL     NULL    NULL    NULL    NULL    0       
 
1321
1       SIMPLE  t3      ALL     NULL    NULL    NULL    NULL    0       
 
1322
DROP TABLE t1,t2,t3;
 
1323
create table t1 (a int);
 
1324
insert into t1 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9);
 
1325
create table t2 (a int, filler char(100), key(a));
 
1326
insert into t2 select A.a + 10*B.a, '' from t1 A, t1 B;
 
1327
create table t3 like t2;
 
1328
insert into t3 select * from t2;
 
1329
explain select * from t1 left join 
 
1330
(t2 left join t3 on (t2.a = t3.a)) 
 
1331
on (t1.a = t2.a);
 
1332
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1333
1       SIMPLE  t1      ALL     NULL    NULL    NULL    NULL    10      
 
1334
1       SIMPLE  t2      ref     a       a       5       test.t1.a       1       
 
1335
1       SIMPLE  t3      ref     a       a       5       test.t2.a       1       
 
1336
drop table t1, t2, t3;
 
1337
CREATE TABLE t1 (
 
1338
id int NOT NULL PRIMARY KEY,
 
1339
ct int DEFAULT NULL,
 
1340
pc int DEFAULT NULL,
 
1341
INDEX idx_ct (ct),
 
1342
INDEX idx_pc (pc)
 
1343
);
 
1344
INSERT INTO t1 VALUES  
 
1345
(1,NULL,NULL),(2,NULL,NULL),(3,NULL,NULL),(4,NULL,NULL),(5,NULL,NULL);
 
1346
CREATE TABLE t2 (
 
1347
id int NOT NULL PRIMARY KEY,
 
1348
sr int NOT NULL,
 
1349
nm varchar(255) NOT NULL,
 
1350
INDEX idx_sr (sr)
 
1351
);
 
1352
INSERT INTO t2 VALUES
 
1353
(2441905,4308,'LesAbymes'),(2441906,4308,'Anse-Bertrand');
 
1354
CREATE TABLE t3 (
 
1355
id int NOT NULL PRIMARY KEY,
 
1356
ct int NOT NULL,
 
1357
ln int NOT NULL,
 
1358
INDEX idx_ct (ct),
 
1359
INDEX idx_ln (ln)
 
1360
);
 
1361
CREATE TABLE t4 (
 
1362
id int NOT NULL PRIMARY KEY,
 
1363
nm varchar(255) NOT NULL
 
1364
);
 
1365
INSERT INTO t4 VALUES (4308,'Guadeloupe'),(4309,'Martinique');
 
1366
SELECT t1.*
 
1367
FROM t1 LEFT JOIN
 
1368
(t2 LEFT JOIN t3 ON t3.ct=t2.id AND t3.ln='5') ON t1.ct=t2.id
 
1369
WHERE t1.id='5';
 
1370
id      ct      pc
 
1371
5       NULL    NULL
 
1372
SELECT t1.*, t4.nm
 
1373
FROM t1 LEFT JOIN
 
1374
(t2 LEFT JOIN t3 ON t3.ct=t2.id AND t3.ln='5') ON t1.ct=t2.id
 
1375
LEFT JOIN t4 ON t2.sr=t4.id
 
1376
WHERE t1.id='5';
 
1377
id      ct      pc      nm
 
1378
5       NULL    NULL    NULL
 
1379
DROP TABLE t1,t2,t3,t4;
 
1380
CREATE TABLE t1 (a INT, b INT);
 
1381
CREATE TABLE t2 (a INT);
 
1382
CREATE TABLE t3 (a INT, c INT);
 
1383
CREATE TABLE t4 (a INT, c INT);
 
1384
CREATE TABLE t5 (a INT, c INT);
 
1385
SELECT b FROM t1 JOIN (t2 LEFT JOIN t3 USING (a) LEFT JOIN t4 USING (a)
 
1386
LEFT JOIN t5 USING (a)) USING (a);
 
1387
b
 
1388
SELECT c FROM t1 JOIN (t2 LEFT JOIN t3 USING (a) LEFT JOIN t4 USING (a)
 
1389
LEFT JOIN t5 USING (a)) USING (a);
 
1390
ERROR 23000: Column 'c' in field list is ambiguous
 
1391
SELECT b FROM t1 JOIN (t2 JOIN t3 USING (a) JOIN t4 USING (a)
 
1392
JOIN t5 USING (a)) USING (a);
 
1393
b
 
1394
SELECT c FROM t1 JOIN (t2 JOIN t3 USING (a) JOIN t4 USING (a)
 
1395
JOIN t5 USING (a)) USING (a);
 
1396
ERROR 23000: Column 'c' in field list is ambiguous
 
1397
DROP TABLE t1,t2,t3,t4,t5;
 
1398
CREATE TABLE t1 (a INT, b INT);
 
1399
CREATE TABLE t2 (a INT, b INT);
 
1400
CREATE TABLE t3 (a INT, b INT);
 
1401
INSERT INTO t1 VALUES (1,1);
 
1402
INSERT INTO t2 VALUES (1,1);
 
1403
INSERT INTO t3 VALUES (1,1);
 
1404
SELECT * FROM t1 JOIN (t2 JOIN t3 USING (b)) USING (a);
 
1405
ERROR 23000: Column 'a' in from clause is ambiguous
 
1406
DROP TABLE t1,t2,t3;
 
1407
CREATE TABLE t1 (
 
1408
carrier char(2) default NULL,
 
1409
id int NOT NULL auto_increment PRIMARY KEY
 
1410
);
 
1411
INSERT INTO t1 VALUES
 
1412
('CO',235371754),('CO',235376554),('CO',235376884),('CO',235377874),
 
1413
('CO',231060394),('CO',231059224),('CO',231059314),('CO',231060484),
 
1414
('CO',231060274),('CO',231060124),('CO',231060244),('CO',231058594),
 
1415
('CO',231058924),('CO',231058504),('CO',231059344),('CO',231060424),
 
1416
('CO',231059554),('CO',231060304),('CO',231059644),('CO',231059464),
 
1417
('CO',231059764),('CO',231058294),('CO',231058624),('CO',231058864),
 
1418
('CO',231059374),('CO',231059584),('CO',231059734),('CO',231059014),
 
1419
('CO',231059854),('CO',231059494),('CO',231059794),('CO',231058534),
 
1420
('CO',231058324),('CO',231058684),('CO',231059524),('CO',231059974);
 
1421
CREATE TABLE t2 (
 
1422
scan_date date default NULL,
 
1423
package_id int default NULL,
 
1424
INDEX scan_date(scan_date),
 
1425
INDEX package_id(package_id)
 
1426
);
 
1427
INSERT INTO t2 VALUES
 
1428
('2008-12-29',231062944),('2008-12-29',231065764),('2008-12-29',231066124),
 
1429
('2008-12-29',231060094),('2008-12-29',231061054),('2008-12-29',231065644),
 
1430
('2008-12-29',231064384),('2008-12-29',231064444),('2008-12-29',231073774),
 
1431
('2008-12-29',231058594),('2008-12-29',231059374),('2008-12-29',231066004),
 
1432
('2008-12-29',231068494),('2008-12-29',231070174),('2008-12-29',231071884),
 
1433
('2008-12-29',231063274),('2008-12-29',231063754),('2008-12-29',231064144),
 
1434
('2008-12-29',231069424),('2008-12-29',231073714),('2008-12-29',231058414),
 
1435
('2008-12-29',231060994),('2008-12-29',231069154),('2008-12-29',231068614),
 
1436
('2008-12-29',231071464),('2008-12-29',231074014),('2008-12-29',231059614),
 
1437
('2008-12-29',231059074),('2008-12-29',231059464),('2008-12-29',231069094),
 
1438
('2008-12-29',231067294),('2008-12-29',231070144),('2008-12-29',231073804),
 
1439
('2008-12-29',231072634),('2008-12-29',231058294),('2008-12-29',231065344),
 
1440
('2008-12-29',231066094),('2008-12-29',231069034),('2008-12-29',231058594),
 
1441
('2008-12-29',231059854),('2008-12-29',231059884),('2008-12-29',231059914),
 
1442
('2008-12-29',231063664),('2008-12-29',231063814),('2008-12-29',231063904);
 
1443
CREATE TABLE t3 (
 
1444
package_id int default NULL,
 
1445
INDEX package_id(package_id)
 
1446
);
 
1447
INSERT INTO t3 VALUES
 
1448
(231058294),(231058324),(231058354),(231058384),(231058414),(231058444),
 
1449
(231058474),(231058504),(231058534),(231058564),(231058594),(231058624),
 
1450
(231058684),(231058744),(231058804),(231058864),(231058924),(231058954),
 
1451
(231059014),(231059074),(231059104),(231059134),(231059164),(231059194),
 
1452
(231059224),(231059254),(231059284),(231059314),(231059344),(231059374),
 
1453
(231059404),(231059434),(231059464),(231059494),(231059524),(231059554),
 
1454
(231059584),(231059614),(231059644),(231059674),(231059704),(231059734),
 
1455
(231059764),(231059794),(231059824),(231059854),(231059884),(231059914),
 
1456
(231059944),(231059974),(231060004),(231060034),(231060064),(231060094),
 
1457
(231060124),(231060154),(231060184),(231060214),(231060244),(231060274),
 
1458
(231060304),(231060334),(231060364),(231060394),(231060424),(231060454),
 
1459
(231060484),(231060514),(231060544),(231060574),(231060604),(231060634),
 
1460
(231060664),(231060694),(231060724),(231060754),(231060784),(231060814),
 
1461
(231060844),(231060874),(231060904),(231060934),(231060964),(231060994),
 
1462
(231061024),(231061054),(231061084),(231061144),(231061174),(231061204),
 
1463
(231061234),(231061294),(231061354),(231061384),(231061414),(231061474),
 
1464
(231061564),(231061594),(231061624),(231061684),(231061714),(231061774),
 
1465
(231061804),(231061894),(231061984),(231062074),(231062134),(231062224),
 
1466
(231062254),(231062314),(231062374),(231062434),(231062494),(231062554),
 
1467
(231062584),(231062614),(231062644),(231062704),(231062734),(231062794),
 
1468
(231062854),(231062884),(231062944),(231063004),(231063034),(231063064),
 
1469
(231063124),(231063154),(231063184),(231063214),(231063274),(231063334),
 
1470
(231063394),(231063424),(231063454),(231063514),(231063574),(231063664);
 
1471
CREATE TABLE t4 (
 
1472
carrier char(2) NOT NULL default '' PRIMARY KEY,
 
1473
id int(11) default NULL,
 
1474
INDEX id(id)
 
1475
);
 
1476
INSERT INTO t4 VALUES
 
1477
('99',6),('SK',456),('UA',486),('AI',1081),('OS',1111),('VS',1510);
 
1478
CREATE TABLE t5 (
 
1479
carrier_id int default NULL,
 
1480
INDEX carrier_id(carrier_id)
 
1481
);
 
1482
INSERT INTO t5 VALUES
 
1483
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
 
1484
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
 
1485
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
 
1486
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
 
1487
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),
 
1488
(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(6),(456),(456),(456),
 
1489
(456),(456),(456),(456),(456),(456),(456),(456),(456),(456),(456),(456),
 
1490
(456),(486),(1081),(1111),(1111),(1111),(1111),(1510);
 
1491
SELECT COUNT(*) 
 
1492
FROM((t2 JOIN t1 ON t2.package_id = t1.id) 
 
1493
JOIN t3 ON t3.package_id = t1.id);
 
1494
COUNT(*)
 
1495
6
 
1496
EXPLAIN
 
1497
SELECT COUNT(*) 
 
1498
FROM ((t2 JOIN t1 ON t2.package_id = t1.id) 
 
1499
JOIN t3 ON t3.package_id = t1.id)
 
1500
LEFT JOIN 
 
1501
(t5 JOIN t4 ON t5.carrier_id = t4.id)
 
1502
ON t4.carrier = t1.carrier;
 
1503
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
1504
1       SIMPLE  t2      index   package_id      package_id      5       NULL    45      Using index
 
1505
1       SIMPLE  t1      eq_ref  PRIMARY PRIMARY 4       test.t2.package_id      1       
 
1506
1       SIMPLE  t4      eq_ref  PRIMARY,id      PRIMARY 2       test.t1.carrier 1       
 
1507
1       SIMPLE  t5      ref     carrier_id      carrier_id      5       test.t4.id      22      Using index
 
1508
1       SIMPLE  t3      ref     package_id      package_id      5       test.t1.id      1       Using where; Using index
 
1509
SELECT COUNT(*) 
 
1510
FROM ((t2 JOIN t1 ON t2.package_id = t1.id) 
 
1511
JOIN t3 ON t3.package_id = t1.id)
 
1512
LEFT JOIN 
 
1513
(t5 JOIN t4 ON t5.carrier_id = t4.id)
 
1514
ON t4.carrier = t1.carrier;
 
1515
COUNT(*)
 
1516
6
 
1517
DROP TABLE t1,t2,t3,t4,t5;
 
1518
End of 5.0 tests