~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to tests/r/subselect3.result

  • Committer: Mark Atwood
  • Date: 2008-10-17 20:35:11 UTC
  • mto: (520.1.13 drizzle)
  • mto: This revision was merged to the branch mainline in revision 530.
  • Revision ID: mark@fallenpegasus.com-20081017203511-q1s2pruvxf6d7it2
fixes as per MontyT's comments, prep for internationalization

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
2       DEPENDENT SUBQUERY      t1      ALL     NULL    NULL    NULL    NULL    6       100.00  Using where; Using temporary; Using filesort
31
31
Warnings:
32
32
Note    1276    Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
33
 
Note    1003    select "test"."t2"."a" AS "a","test"."t2"."oref" AS "oref",<in_optimizer>("test"."t2"."a",<exists>(select max("test"."t1"."ie") AS "max(ie)" from "test"."t1" where ("test"."t1"."oref" = "test"."t2"."oref") group by "test"."t1"."grp" having trigcond((<cache>("test"."t2"."a") = <ref_null_helper>(max("test"."t1"."ie")))))) AS "Z" from "test"."t2"
 
33
Note    1003    select `test`.`t2`.`a` AS `a`,`test`.`t2`.`oref` AS `oref`,<in_optimizer>(`test`.`t2`.`a`,<exists>(select max(`test`.`t1`.`ie`) AS `max(ie)` from `test`.`t1` where (`test`.`t1`.`oref` = `test`.`t2`.`oref`) group by `test`.`t1`.`grp` having trigcond((<cache>(`test`.`t2`.`a`) = <ref_null_helper>(max(`test`.`t1`.`ie`)))))) AS `Z` from `test`.`t2`
34
34
explain extended
35
35
select a, oref from t2 
36
36
where a in (select max(ie) from t1 where oref=t2.oref group by grp);
39
39
2       DEPENDENT SUBQUERY      t1      ALL     NULL    NULL    NULL    NULL    6       100.00  Using where; Using temporary; Using filesort
40
40
Warnings:
41
41
Note    1276    Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
42
 
Note    1003    select "test"."t2"."a" AS "a","test"."t2"."oref" AS "oref" from "test"."t2" where <in_optimizer>("test"."t2"."a",<exists>(select max("test"."t1"."ie") AS "max(ie)" from "test"."t1" where ("test"."t1"."oref" = "test"."t2"."oref") group by "test"."t1"."grp" having (<cache>("test"."t2"."a") = <ref_null_helper>(max("test"."t1"."ie")))))
 
42
Note    1003    select `test`.`t2`.`a` AS `a`,`test`.`t2`.`oref` AS `oref` from `test`.`t2` where <in_optimizer>(`test`.`t2`.`a`,<exists>(select max(`test`.`t1`.`ie`) AS `max(ie)` from `test`.`t1` where (`test`.`t1`.`oref` = `test`.`t2`.`oref`) group by `test`.`t1`.`grp` having (<cache>(`test`.`t2`.`a`) = <ref_null_helper>(max(`test`.`t1`.`ie`)))))
43
43
select a, oref, a in (
44
44
select max(ie) from t1 where oref=t2.oref group by grp union
45
45
select max(ie) from t1 where oref=t2.oref group by grp
68
68
1       PRIMARY t3      ALL     NULL    NULL    NULL    NULL    2       100.00  
69
69
2       DEPENDENT SUBQUERY      t1      ALL     NULL    NULL    NULL    NULL    6       100.00  Using where; Using temporary; Using filesort
70
70
Warnings:
71
 
Note    1003    select <in_optimizer>("test"."t3"."a",<exists>(select max("test"."t1"."ie") AS "max(ie)" from "test"."t1" where ("test"."t1"."oref" = 4) group by "test"."t1"."grp" having trigcond((<cache>("test"."t3"."a") = <ref_null_helper>(max("test"."t1"."ie")))))) AS "a in (select max(ie) from t1 where oref=4 group by grp)" from "test"."t3"
 
71
Note    1003    select <in_optimizer>(`test`.`t3`.`a`,<exists>(select max(`test`.`t1`.`ie`) AS `max(ie)` from `test`.`t1` where (`test`.`t1`.`oref` = 4) group by `test`.`t1`.`grp` having trigcond((<cache>(`test`.`t3`.`a`) = <ref_null_helper>(max(`test`.`t1`.`ie`)))))) AS `a in (select max(ie) from t1 where oref=4 group by grp)` from `test`.`t3`
72
72
drop table t1, t2, t3;
73
73
create table t1 (a int, oref int, key(a));
74
74
insert into t1 values 
89
89
select oref, a, a in (select a from t1 where oref=t2.oref) Z from t2;
90
90
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
91
91
1       PRIMARY t2      ALL     NULL    NULL    NULL    NULL    4       100.00  
92
 
2       DEPENDENT SUBQUERY      t1      index_subquery  a       a       5       func    2       100.00  Using where; Full scan on NULL key
 
92
2       DEPENDENT SUBQUERY      t1      ALL     a       NULL    NULL    NULL    5       80.00   Using where
93
93
Warnings:
94
94
Note    1276    Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
95
 
Note    1003    select "test"."t2"."oref" AS "oref","test"."t2"."a" AS "a",<in_optimizer>("test"."t2"."a",<exists>(<index_lookup>(<cache>("test"."t2"."a") in t1 on a checking NULL where ("test"."t1"."oref" = "test"."t2"."oref") having trigcond(<is_not_null_test>("test"."t1"."a"))))) AS "Z" from "test"."t2"
 
95
Note    1003    select `test`.`t2`.`oref` AS `oref`,`test`.`t2`.`a` AS `a`,<in_optimizer>(`test`.`t2`.`a`,<exists>(select 1 AS `Not_used` from `test`.`t1` where ((`test`.`t1`.`oref` = `test`.`t2`.`oref`) and trigcond(((<cache>(`test`.`t2`.`a`) = `test`.`t1`.`a`) or isnull(`test`.`t1`.`a`)))) having trigcond(<is_not_null_test>(`test`.`t1`.`a`)))) AS `Z` from `test`.`t2`
96
96
flush status;
97
97
select oref, a from t2 where a in (select a from t1 where oref=t2.oref);
98
98
oref    a
111
111
0       NULL    0
112
112
show status like '%Handler_read%';
113
113
Variable_name   Value
114
 
Handler_read_first      0
115
 
Handler_read_key        0
 
114
Handler_read_first      5
 
115
Handler_read_key        10
116
116
Handler_read_next       0
117
117
Handler_read_prev       0
118
118
Handler_read_rnd        0
153
153
from t3;
154
154
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
155
155
1       PRIMARY t3      ALL     NULL    NULL    NULL    NULL    3       100.00  
156
 
2       DEPENDENT SUBQUERY      t1      ref_or_null     a       a       5       func    4       100.00  Using where; Full scan on NULL key
 
156
2       DEPENDENT SUBQUERY      t1      ref_or_null     a       a       5       func    2       100.00  Using where; Full scan on NULL key
157
157
2       DEPENDENT SUBQUERY      t2      ref     a       a       5       test.t1.b       1       100.00  Using where
158
158
Warnings:
159
159
Note    1276    Field or reference 'test.t3.oref' of SELECT #2 was resolved in SELECT #1
160
 
Note    1003    select "test"."t3"."a" AS "a","test"."t3"."oref" AS "oref",<in_optimizer>("test"."t3"."a",<exists>(select 1 AS "Not_used" from "test"."t1" join "test"."t2" where (("test"."t2"."a" = "test"."t1"."b") and ("test"."t2"."b" = "test"."t3"."oref") and trigcond(((<cache>("test"."t3"."a") = "test"."t1"."a") or isnull("test"."t1"."a")))) having trigcond(<is_not_null_test>("test"."t1"."a")))) AS "Z" from "test"."t3"
 
160
Note    1003    select `test`.`t3`.`a` AS `a`,`test`.`t3`.`oref` AS `oref`,<in_optimizer>(`test`.`t3`.`a`,<exists>(select 1 AS `Not_used` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`a` = `test`.`t1`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`oref`) and trigcond(((<cache>(`test`.`t3`.`a`) = `test`.`t1`.`a`) or isnull(`test`.`t1`.`a`)))) having trigcond(<is_not_null_test>(`test`.`t1`.`a`)))) AS `Z` from `test`.`t3`
161
161
drop table t1, t2, t3;
162
162
create table t1 (a int NOT NULL, b int NOT NULL, key(a));
163
163
insert into t1 values 
181
181
from t3;
182
182
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
183
183
1       PRIMARY t3      ALL     NULL    NULL    NULL    NULL    3       100.00  
184
 
2       DEPENDENT SUBQUERY      t1      ref     a       a       4       func    2       100.00  Using where; Full scan on NULL key
 
184
2       DEPENDENT SUBQUERY      t1      ref     a       a       4       func    1       100.00  Using where; Full scan on NULL key
185
185
2       DEPENDENT SUBQUERY      t2      ref     a       a       4       test.t1.b       1       100.00  Using where
186
186
Warnings:
187
187
Note    1276    Field or reference 'test.t3.oref' of SELECT #2 was resolved in SELECT #1
188
 
Note    1003    select "test"."t3"."a" AS "a","test"."t3"."oref" AS "oref",<in_optimizer>("test"."t3"."a",<exists>(select 1 AS "Not_used" from "test"."t1" join "test"."t2" where (("test"."t2"."a" = "test"."t1"."b") and ("test"."t2"."b" = "test"."t3"."oref") and trigcond((<cache>("test"."t3"."a") = "test"."t1"."a"))))) AS "Z" from "test"."t3"
 
188
Note    1003    select `test`.`t3`.`a` AS `a`,`test`.`t3`.`oref` AS `oref`,<in_optimizer>(`test`.`t3`.`a`,<exists>(select 1 AS `Not_used` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`a` = `test`.`t1`.`b`) and (`test`.`t2`.`b` = `test`.`t3`.`oref`) and trigcond((<cache>(`test`.`t3`.`a`) = `test`.`t1`.`a`))))) AS `Z` from `test`.`t3`
189
189
drop table t1,t2,t3;
190
190
create table t1 (oref int, grp int);
191
191
insert into t1 (oref, grp) values
209
209
2       DEPENDENT SUBQUERY      t1      ALL     NULL    NULL    NULL    NULL    2       100.00  Using temporary; Using filesort
210
210
Warnings:
211
211
Note    1276    Field or reference 't2.oref' of SELECT #2 was resolved in SELECT #1
212
 
Note    1003    select "test"."t2"."a" AS "a","test"."t2"."oref" AS "oref",<in_optimizer>("test"."t2"."a",<exists>(select count(0) AS "count(*)" from "test"."t1" group by "test"."t1"."grp" having (("test"."t1"."grp" = "test"."t2"."oref") and trigcond((<cache>("test"."t2"."a") = <ref_null_helper>(count(0))))))) AS "Z" from "test"."t2"
 
212
Note    1003    select `test`.`t2`.`a` AS `a`,`test`.`t2`.`oref` AS `oref`,<in_optimizer>(`test`.`t2`.`a`,<exists>(select count(0) AS `count(*)` from `test`.`t1` group by `test`.`t1`.`grp` having ((`test`.`t1`.`grp` = `test`.`t2`.`oref`) and trigcond((<cache>(`test`.`t2`.`a`) = <ref_null_helper>(count(0))))))) AS `Z` from `test`.`t2`
213
213
drop table t1, t2;
214
214
create table t1 (a int, b int, primary key (a));
215
215
insert into t1 values (1,1), (3,1),(100,1);
241
241
2       DEPENDENT SUBQUERY      t1      index_subquery  a       a       5       func    2       100.00  Using where; Full scan on NULL key
242
242
Warnings:
243
243
Note    1276    Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
244
 
Note    1003    select "test"."t2"."a" AS "a","test"."t2"."b" AS "b","test"."t2"."oref" AS "oref",<in_optimizer>(("test"."t2"."a","test"."t2"."b"),<exists>(<index_lookup>(<cache>("test"."t2"."a") in t1 on a checking NULL where (("test"."t1"."c" = "test"."t2"."oref") and trigcond(((<cache>("test"."t2"."a") = "test"."t1"."a") or isnull("test"."t1"."a"))) and trigcond(((<cache>("test"."t2"."b") = "test"."t1"."b") or isnull("test"."t1"."b")))) having (trigcond(<is_not_null_test>("test"."t1"."a")) and trigcond(<is_not_null_test>("test"."t1"."b")))))) AS "Z" from "test"."t2"
 
244
Note    1003    select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`oref` AS `oref`,<in_optimizer>((`test`.`t2`.`a`,`test`.`t2`.`b`),<exists>(<index_lookup>(<cache>(`test`.`t2`.`a`) in t1 on a checking NULL where ((`test`.`t1`.`c` = `test`.`t2`.`oref`) and trigcond(((<cache>(`test`.`t2`.`a`) = `test`.`t1`.`a`) or isnull(`test`.`t1`.`a`))) and trigcond(((<cache>(`test`.`t2`.`b`) = `test`.`t1`.`b`) or isnull(`test`.`t1`.`b`)))) having (trigcond(<is_not_null_test>(`test`.`t1`.`a`)) and trigcond(<is_not_null_test>(`test`.`t1`.`b`)))))) AS `Z` from `test`.`t2`
245
245
select a,b, oref, (a,b) in (select a,b from t1 where c=t2.oref) Z from t2;
246
246
a       b       oref    Z
247
247
NULL    1       100     0
254
254
from t2;
255
255
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
256
256
1       PRIMARY t2      ALL     NULL    NULL    NULL    NULL    2       100.00  
257
 
2       DEPENDENT SUBQUERY      t1      ref_or_null     a       a       5       func    2       100.00  Using where; Full scan on NULL key
 
257
2       DEPENDENT SUBQUERY      t1      ALL     a       NULL    NULL    NULL    10      80.00   Using where
258
258
2       DEPENDENT SUBQUERY      t4      ALL     NULL    NULL    NULL    NULL    100     100.00  Using where; Using join buffer
259
259
Warnings:
260
260
Note    1276    Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
261
 
Note    1003    select "test"."t2"."a" AS "a","test"."t2"."b" AS "b","test"."t2"."oref" AS "oref",<in_optimizer>(("test"."t2"."a","test"."t2"."b"),<exists>(select "test"."t1"."a" AS "a","test"."t1"."b" AS "b" from "test"."t1" join "test"."t4" where (("test"."t1"."c" = "test"."t2"."oref") and trigcond(((<cache>("test"."t2"."a") = "test"."t1"."a") or isnull("test"."t1"."a"))) and trigcond(((<cache>("test"."t2"."b") = "test"."t1"."b") or isnull("test"."t1"."b")))) having (trigcond(<is_not_null_test>("test"."t1"."a")) and trigcond(<is_not_null_test>("test"."t1"."b"))))) AS "Z" from "test"."t2"
 
261
Note    1003    select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,`test`.`t2`.`oref` AS `oref`,<in_optimizer>((`test`.`t2`.`a`,`test`.`t2`.`b`),<exists>(select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` join `test`.`t4` where ((`test`.`t1`.`c` = `test`.`t2`.`oref`) and trigcond(((<cache>(`test`.`t2`.`a`) = `test`.`t1`.`a`) or isnull(`test`.`t1`.`a`))) and trigcond(((<cache>(`test`.`t2`.`b`) = `test`.`t1`.`b`) or isnull(`test`.`t1`.`b`)))) having (trigcond(<is_not_null_test>(`test`.`t1`.`a`)) and trigcond(<is_not_null_test>(`test`.`t1`.`b`))))) AS `Z` from `test`.`t2`
262
262
select a,b, oref, 
263
263
(a,b) in (select a,b from t1,t4 where c=t2.oref) Z 
264
264
from t2;
300
300
select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2 where a=10 and b=10;
301
301
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
302
302
1       PRIMARY t2      ALL     NULL    NULL    NULL    NULL    8       100.00  Using where
303
 
2       DEPENDENT SUBQUERY      t1      index_subquery  idx     idx     5       func    4       100.00  Using where; Full scan on NULL key
 
303
2       DEPENDENT SUBQUERY      t1      ALL     idx     NULL    NULL    NULL    11      81.82   Using where
304
304
Warnings:
305
305
Note    1276    Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
306
 
Note    1003    select "test"."t2"."oref" AS "oref","test"."t2"."a" AS "a","test"."t2"."b" AS "b",<in_optimizer>(("test"."t2"."a","test"."t2"."b"),<exists>(<index_lookup>(<cache>("test"."t2"."a") in t1 on idx checking NULL where (("test"."t1"."oref" = "test"."t2"."oref") and trigcond(((<cache>("test"."t2"."a") = "test"."t1"."ie1") or isnull("test"."t1"."ie1"))) and trigcond(((<cache>("test"."t2"."b") = "test"."t1"."ie2") or isnull("test"."t1"."ie2")))) having (trigcond(<is_not_null_test>("test"."t1"."ie1")) and trigcond(<is_not_null_test>("test"."t1"."ie2")))))) AS "Z" from "test"."t2" where (("test"."t2"."b" = 10) and ("test"."t2"."a" = 10))
 
306
Note    1003    select `test`.`t2`.`oref` AS `oref`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,<in_optimizer>((`test`.`t2`.`a`,`test`.`t2`.`b`),<exists>(select `test`.`t1`.`ie1` AS `ie1`,`test`.`t1`.`ie2` AS `ie2` from `test`.`t1` where ((`test`.`t1`.`oref` = `test`.`t2`.`oref`) and trigcond(((<cache>(`test`.`t2`.`a`) = `test`.`t1`.`ie1`) or isnull(`test`.`t1`.`ie1`))) and trigcond(((<cache>(`test`.`t2`.`b`) = `test`.`t1`.`ie2`) or isnull(`test`.`t1`.`ie2`)))) having (trigcond(<is_not_null_test>(`test`.`t1`.`ie1`)) and trigcond(<is_not_null_test>(`test`.`t1`.`ie2`))))) AS `Z` from `test`.`t2` where ((`test`.`t2`.`b` = 10) and (`test`.`t2`.`a` = 10))
307
307
drop table t1, t2;
308
308
create table t1 (oref char(4), grp int, ie int);
309
309
insert into t1 (oref, grp, ie) values
409
409
explain select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
410
410
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
411
411
1       PRIMARY t2      ALL     NULL    NULL    NULL    NULL    7       
412
 
2       DEPENDENT SUBQUERY      t1      index_subquery  idx     idx     5       func    4       Using where; Full scan on NULL key
 
412
2       DEPENDENT SUBQUERY      t1      ALL     idx     NULL    NULL    NULL    10      Using where
413
413
select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
414
414
oref    a       Z
415
415
ee      NULL    NULL
432
432
explain select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
433
433
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
434
434
1       PRIMARY t2      ALL     NULL    NULL    NULL    NULL    7       
435
 
2       DEPENDENT SUBQUERY      t1      ref_or_null     idx     idx     10      test.t2.oref,func       4       Using where; Using index; Full scan on NULL key
 
435
2       DEPENDENT SUBQUERY      t1      ref_or_null     idx     idx     24      test.t2.oref,func       10      Using where; Using index; Full scan on NULL key
436
436
select oref, a, a in (select ie from t1 where oref=t2.oref) Z from t2;
437
437
oref    a       Z
438
438
ee      NULL    NULL
444
444
bb      NULL    NULL
445
445
select oref, a from t2 where a in (select ie from t1 where oref=t2.oref);
446
446
oref    a
 
447
aa      1
447
448
ff      2
448
 
aa      1
449
449
select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref);
450
450
oref    a
451
451
bb      2
457
457
from t2;
458
458
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
459
459
1       PRIMARY t2      ALL     NULL    NULL    NULL    NULL    7       
460
 
2       DEPENDENT SUBQUERY      t1      ref     idx     idx     5       test.t2.oref    2       Using where; Using temporary; Using filesort
 
460
2       DEPENDENT SUBQUERY      t1      ref     idx     idx     19      test.t2.oref    5       Using where; Using temporary; Using filesort
461
461
select oref, a, 
462
462
a in (select min(ie) from t1 where oref=t2.oref 
463
463
group by grp having min(ie) > 1) Z 
548
548
explain select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2;
549
549
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
550
550
1       PRIMARY t2      ALL     NULL    NULL    NULL    NULL    7       
551
 
2       DEPENDENT SUBQUERY      t1      index_subquery  idx     idx     5       func    4       Using where; Full scan on NULL key
 
551
2       DEPENDENT SUBQUERY      t1      ALL     idx     NULL    NULL    NULL    10      Using where
552
552
select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2;
553
553
oref    a       b       Z
554
554
ee      NULL    1       NULL
570
570
select oref, a, b, (a,b) in (select ie1,ie2 from t1 where oref=t2.oref) Z from t2;
571
571
id      select_type     table   type    possible_keys   key     key_len ref     rows    filtered        Extra
572
572
1       PRIMARY t2      ALL     NULL    NULL    NULL    NULL    7       100.00  
573
 
2       DEPENDENT SUBQUERY      t1      index_subquery  idx     idx     5       func    4       100.00  Using where; Full scan on NULL key
 
573
2       DEPENDENT SUBQUERY      t1      ALL     idx     NULL    NULL    NULL    10      80.00   Using where
574
574
Warnings:
575
575
Note    1276    Field or reference 'test.t2.oref' of SELECT #2 was resolved in SELECT #1
576
 
Note    1003    select "test"."t2"."oref" AS "oref","test"."t2"."a" AS "a","test"."t2"."b" AS "b",<in_optimizer>(("test"."t2"."a","test"."t2"."b"),<exists>(<index_lookup>(<cache>("test"."t2"."a") in t1 on idx checking NULL where (("test"."t1"."oref" = "test"."t2"."oref") and trigcond(((<cache>("test"."t2"."a") = "test"."t1"."ie1") or isnull("test"."t1"."ie1"))) and trigcond(((<cache>("test"."t2"."b") = "test"."t1"."ie2") or isnull("test"."t1"."ie2")))) having (trigcond(<is_not_null_test>("test"."t1"."ie1")) and trigcond(<is_not_null_test>("test"."t1"."ie2")))))) AS "Z" from "test"."t2"
 
576
Note    1003    select `test`.`t2`.`oref` AS `oref`,`test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b`,<in_optimizer>((`test`.`t2`.`a`,`test`.`t2`.`b`),<exists>(select `test`.`t1`.`ie1` AS `ie1`,`test`.`t1`.`ie2` AS `ie2` from `test`.`t1` where ((`test`.`t1`.`oref` = `test`.`t2`.`oref`) and trigcond(((<cache>(`test`.`t2`.`a`) = `test`.`t1`.`ie1`) or isnull(`test`.`t1`.`ie1`))) and trigcond(((<cache>(`test`.`t2`.`b`) = `test`.`t1`.`ie2`) or isnull(`test`.`t1`.`ie2`)))) having (trigcond(<is_not_null_test>(`test`.`t1`.`ie1`)) and trigcond(<is_not_null_test>(`test`.`t1`.`ie2`))))) AS `Z` from `test`.`t2`
577
577
drop table t1,t2;
578
578
create table t1 (oref char(4), grp int, ie int primary key);
579
579
insert into t1 (oref, grp, ie) values
607
607
bb      NULL    NULL
608
608
select oref, a from t2 where a in (select ie from t1 where oref=t2.oref);
609
609
oref    a
 
610
aa      1
610
611
cc      5
611
 
aa      1
612
612
select oref, a from t2 where a not in (select ie from t1 where oref=t2.oref);
613
613
oref    a
614
614
ee      NULL
703
703
1       PRIMARY t2      eq_ref  PRIMARY PRIMARY 4       test.t1.a       1       100.00  Using index
704
704
2       DEPENDENT SUBQUERY      t1      ALL     NULL    NULL    NULL    NULL    3       100.00  Using where
705
705
Warnings:
706
 
Note    1003    select "test"."t1"."a" AS "a" from "test"."t1" join "test"."t2" where (("test"."t2"."b" = "test"."t1"."a") and (not(<in_optimizer>("test"."t1"."a",<exists>(select 1 AS "Not_used" from "test"."t1" where ((<cache>("test"."t2"."b") = "test"."t1"."a") or isnull("test"."t1"."a")) having <is_not_null_test>("test"."t1"."a"))))))
 
706
Note    1003    select `test`.`t1`.`a` AS `a` from `test`.`t1` join `test`.`t2` where ((`test`.`t2`.`b` = `test`.`t1`.`a`) and (not(<in_optimizer>(`test`.`t1`.`a`,<exists>(select 1 AS `Not_used` from `test`.`t1` where ((<cache>(`test`.`t2`.`b`) = `test`.`t1`.`a`) or isnull(`test`.`t1`.`a`)) having <is_not_null_test>(`test`.`t1`.`a`))))))
707
707
SELECT a FROM t1, t2 WHERE a=b AND (b NOT IN (SELECT a FROM t1));
708
708
a
709
709
SELECT a FROM t1, t2 WHERE a=b AND (b NOT IN (SELECT a FROM t1 WHERE a > 4));
724
724
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
725
725
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    4       Using where
726
726
2       DEPENDENT SUBQUERY      t2      eq_ref  PRIMARY PRIMARY 4       func    1       Using where; Using index; Full scan on NULL key
727
 
2       DEPENDENT SUBQUERY      t3      eq_ref  PRIMARY PRIMARY 4       func    1       Using index condition; Using where; Full scan on NULL key
 
727
2       DEPENDENT SUBQUERY      t3      eq_ref  PRIMARY PRIMARY 4       func    1       Using where; Full scan on NULL key
728
728
SELECT * FROM t1
729
729
WHERE t1.id NOT IN (SELECT t2.id FROM t2,t3 
730
730
WHERE t3.name='xxx' AND t2.id=t3.id);
744
744
DROP TABLE t1,t2,t3;
745
745
CREATE TABLE t1 (a INT NOT NULL);
746
746
INSERT INTO t1 VALUES (1),(-1), (65),(66);
747
 
CREATE TABLE t2 (a INT UNSIGNED NOT NULL PRIMARY KEY);
 
747
CREATE TABLE t2 (a INT NOT NULL PRIMARY KEY);
748
748
INSERT INTO t2 VALUES (65),(66);
749
749
SELECT a FROM t1 WHERE a NOT IN (65,66);
750
750
a
757
757
EXPLAIN SELECT a FROM t1 WHERE a NOT IN (SELECT a FROM t2);
758
758
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
759
759
1       PRIMARY t1      ALL     NULL    NULL    NULL    NULL    4       Using where
760
 
2       DEPENDENT SUBQUERY      t2      unique_subquery PRIMARY PRIMARY 4       func    1       Using index; Using where
 
760
2       DEPENDENT SUBQUERY      t2      unique_subquery PRIMARY PRIMARY 4       func    1       Using index
761
761
DROP TABLE t1, t2;
762
762
CREATE TABLE t1 (a INT);
763
763
INSERT INTO t1 VALUES(1);