📄 subselect.result
字号:
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t11,t12;select (select 2);(select 2)2explain extended select (select 2);id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables usedWarnings:Note 1249 Select 2 was reduced during optimizationNote 1003 select 2 AS `(select 2)`SELECT (SELECT 1) UNION SELECT (SELECT 2);(SELECT 1)12explain extended SELECT (SELECT 1) UNION SELECT (SELECT 2);id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used3 UNION NULL NULL NULL NULL NULL NULL NULL No tables usedNULL UNION RESULT <union1,3> ALL NULL NULL NULL NULL NULL Warnings:Note 1249 Select 2 was reduced during optimizationNote 1249 Select 4 was reduced during optimizationNote 1003 select 1 AS `(SELECT 1)` union select 2 AS `(SELECT 2)`SELECT (SELECT (SELECT 0 UNION SELECT 0));(SELECT (SELECT 0 UNION SELECT 0))0explain extended SELECT (SELECT (SELECT 0 UNION SELECT 0));id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY NULL NULL NULL NULL NULL NULL NULL No tables used3 SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used4 UNION NULL NULL NULL NULL NULL NULL NULL No tables usedNULL UNION RESULT <union3,4> ALL NULL NULL NULL NULL NULL Warnings:Note 1249 Select 2 was reduced during optimizationNote 1003 select (select 0 AS `0` union select 0 AS `0`) AS `(SELECT (SELECT 0 UNION SELECT 0))`SELECT (SELECT 1 FROM (SELECT 1) as b HAVING a=1) as a;ERROR 42S22: Reference 'a' not supported (forward reference in item list)SELECT (SELECT 1 FROM (SELECT 1) as b HAVING b=1) as a,(SELECT 1 FROM (SELECT 1) as c HAVING a=1) as b;ERROR 42S22: Reference 'b' not supported (forward reference in item list)SELECT (SELECT 1),MAX(1) FROM (SELECT 1) as a;(SELECT 1) MAX(1)1 1SELECT (SELECT a) as a;ERROR 42S22: Reference 'a' not supported (forward reference in item list)EXPLAIN EXTENDED SELECT 1 FROM (SELECT 1 as a) as b HAVING (SELECT a)=1;id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY <derived2> system NULL NULL NULL NULL 1 3 DEPENDENT SUBQUERY NULL NULL NULL NULL NULL NULL NULL No tables used2 DERIVED NULL NULL NULL NULL NULL NULL NULL No tables usedWarnings:Note 1276 Field or reference 'a' of SELECT #3 was resolved in SELECT #1Note 1276 Field or reference 'b.a' of SELECT #3 was resolved in SELECT #1Note 1003 select 1 AS `1` from (select 1 AS `a`) `b` having ((select `b`.`a` AS `a`) = 1)SELECT 1 FROM (SELECT 1 as a) as b HAVING (SELECT a)=1;11SELECT (SELECT 1), a;ERROR 42S22: Unknown column 'a' in 'field list'SELECT 1 as a FROM (SELECT 1) as b HAVING (SELECT a)=1;a1SELECT 1 FROM (SELECT (SELECT a) b) c;ERROR 42S22: Unknown column 'a' in 'field list'SELECT * FROM (SELECT 1 as id) b WHERE id IN (SELECT * FROM (SELECT 1 as id) c ORDER BY id);id1SELECT * FROM (SELECT 1) a WHERE 1 IN (SELECT 1,1);ERROR 21000: Operand should contain 1 column(s)SELECT 1 IN (SELECT 1);1 IN (SELECT 1)1SELECT 1 FROM (SELECT 1 as a) b WHERE 1 IN (SELECT (SELECT a));11select (SELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE(1));ERROR HY000: Incorrect usage of PROCEDURE and subquerySELECT 1 FROM (SELECT 1) a PROCEDURE ANALYSE((SELECT 1));ERROR HY000: Incorrect parameters to procedure 'ANALYSE'SELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NULL;aSELECT (SELECT 1) as a FROM (SELECT 1) b WHERE (SELECT a) IS NOT NULL;a1SELECT (SELECT 1,2,3) = ROW(1,2,3);(SELECT 1,2,3) = ROW(1,2,3)1SELECT (SELECT 1,2,3) = ROW(1,2,1);(SELECT 1,2,3) = ROW(1,2,1)0SELECT (SELECT 1,2,3) < ROW(1,2,1);(SELECT 1,2,3) < ROW(1,2,1)0SELECT (SELECT 1,2,3) > ROW(1,2,1);(SELECT 1,2,3) > ROW(1,2,1)1SELECT (SELECT 1,2,3) = ROW(1,2,NULL);(SELECT 1,2,3) = ROW(1,2,NULL)NULLSELECT ROW(1,2,3) = (SELECT 1,2,3);ROW(1,2,3) = (SELECT 1,2,3)1SELECT ROW(1,2,3) = (SELECT 1,2,1);ROW(1,2,3) = (SELECT 1,2,1)0SELECT ROW(1,2,3) < (SELECT 1,2,1);ROW(1,2,3) < (SELECT 1,2,1)0SELECT ROW(1,2,3) > (SELECT 1,2,1);ROW(1,2,3) > (SELECT 1,2,1)1SELECT ROW(1,2,3) = (SELECT 1,2,NULL);ROW(1,2,3) = (SELECT 1,2,NULL)NULLSELECT (SELECT 1.5,2,'a') = ROW(1.5,2,'a');(SELECT 1.5,2,'a') = ROW(1.5,2,'a')1SELECT (SELECT 1.5,2,'a') = ROW(1.5,2,'b');(SELECT 1.5,2,'a') = ROW(1.5,2,'b')0SELECT (SELECT 1.5,2,'a') = ROW('1.5b',2,'b');(SELECT 1.5,2,'a') = ROW('1.5b',2,'b')0Warnings:Warning 1292 Truncated incorrect DOUBLE value: '1.5b'SELECT (SELECT 'b',2,'a') = ROW(1.5,2,'a');(SELECT 'b',2,'a') = ROW(1.5,2,'a')0SELECT (SELECT 1.5,2,'a') = ROW(1.5,'2','a');(SELECT 1.5,2,'a') = ROW(1.5,'2','a')1SELECT (SELECT 1.5,'c','a') = ROW(1.5,2,'a');(SELECT 1.5,'c','a') = ROW(1.5,2,'a')0SELECT (SELECT * FROM (SELECT 'test' a,'test' b) a);ERROR 21000: Operand should contain 1 column(s)SELECT 1 as a,(SELECT a+a) b,(SELECT b);a b (SELECT b)1 2 2create table t1 (a int);create table t2 (a int, b int);create table t3 (a int);create table t4 (a int not null, b int not null);insert into t1 values (2);insert into t2 values (1,7),(2,7);insert into t4 values (4,8),(3,8),(5,9);select (select a from t1 where t1.a = a1) as a2, (select b from t2 where t2.b=a2) as a1;ERROR 42S22: Reference 'a1' not supported (forward reference in item list)select (select a from t1 where t1.a=t2.a), a from t2;(select a from t1 where t1.a=t2.a) aNULL 12 2select (select a from t1 where t1.a=t2.b), a from t2;(select a from t1 where t1.a=t2.b) aNULL 1NULL 2select (select a from t1), a, (select 1 union select 2 limit 1) from t2;(select a from t1) a (select 1 union select 2 limit 1)2 1 12 2 1select (select a from t3), a from t2;(select a from t3) aNULL 1NULL 2select * from t2 where t2.a=(select a from t1);a b2 7insert into t3 values (6),(7),(3);select * from t2 where t2.b=(select a from t3 order by 1 desc limit 1);a b1 72 7(select * from t2 where t2.b=(select a from t3 order by 1 desc limit 1)) union (select * from t4 order by a limit 2) limit 3;a b1 72 73 8(select * from t2 where t2.b=(select a from t3 order by 1 desc limit 1)) union (select * from t4 where t4.b=(select max(t2.a)*4 from t2) order by a);a b1 72 74 83 8explain extended (select * from t2 where t2.b=(select a from t3 order by 1 desc limit 1)) union (select * from t4 where t4.b=(select max(t2.a)*4 from t2) order by a);id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using where2 SUBQUERY t3 ALL NULL NULL NULL NULL 3 Using filesort3 UNION t4 ALL NULL NULL NULL NULL 3 Using where4 SUBQUERY t2 ALL NULL NULL NULL NULL 2 NULL UNION RESULT <union1,3> ALL NULL NULL NULL NULL NULL Warnings:Note 1003 (select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t2` where (`test`.`t2`.`b` = (select `test`.`t3`.`a` AS `a` from `test`.`t3` order by 1 desc limit 1))) union (select `test`.`t4`.`a` AS `a`,`test`.`t4`.`b` AS `b` from `test`.`t4` where (`test`.`t4`.`b` = (select (max(`test`.`t2`.`a`) * 4) AS `max(t2.a)*4` from `test`.`t2`)) order by `a`)select (select a from t3 where a<t2.a*4 order by 1 desc limit 1), a from t2;(select a from t3 where a<t2.a*4 order by 1 desc limit 1) a3 17 2select (select t3.a from t3 where a<8 order by 1 desc limit 1), a from (select * from t2 where a>1) as tt;(select t3.a from t3 where a<8 order by 1 desc limit 1) a7 2explain extended select (select t3.a from t3 where a<8 order by 1 desc limit 1), a from (select * from t2 where a>1) as tt;id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY <derived3> system NULL NULL NULL NULL 1 3 DERIVED t2 ALL NULL NULL NULL NULL 2 Using where2 SUBQUERY t3 ALL NULL NULL NULL NULL 3 Using where; Using filesortWarnings:Note 1003 select (select `test`.`t3`.`a` AS `a` from `test`.`t3` where (`test`.`t3`.`a` < 8) order by 1 desc limit 1) AS `(select t3.a from t3 where a<8 order by 1 desc limit 1)`,`tt`.`a` AS `a` from (select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t2` where (`test`.`t2`.`a` > 1)) `tt`select * from t1 where t1.a=(select t2.a from t2 where t2.b=(select max(a) from t3) order by 1 desc limit 1);a2select * from t1 where t1.a=(select t2.a from t2 where t2.b=(select max(a) from t3 where t3.a > t1.a) order by 1 desc limit 1);a2select * from t1 where t1.a=(select t2.a from t2 where t2.b=(select max(a) from t3 where t3.a < t1.a) order by 1 desc limit 1);aselect b,(select avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a)) from t2) from t4;b (select avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a)) from t2)8 7.50008 4.50009 7.5000explain extended select b,(select avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a)) from t2) from t4;id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY t4 ALL NULL NULL NULL NULL 3 2 DEPENDENT SUBQUERY t2 ALL NULL NULL NULL NULL 2 3 DEPENDENT SUBQUERY t3 ALL NULL NULL NULL NULL 3 Using whereWarnings:Note 1276 Field or reference 't4.a' of SELECT #3 was resolved in SELECT #1Note 1003 select `test`.`t4`.`b` AS `b`,(select avg((`test`.`t2`.`a` + (select min(`test`.`t3`.`a`) AS `min(t3.a)` from `test`.`t3` where (`test`.`t3`.`a` >= `test`.`t4`.`a`)))) AS `avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a))` from `test`.`t2`) AS `(select avg(t2.a+(select min(t3.a) from t3 where t3.a >= t4.a)) from t2)` from `test`.`t4`select * from t3 where exists (select * from t2 where t2.b=t3.a);a7select * from t3 where not exists (select * from t2 where t2.b=t3.a);a63select * from t3 where a in (select b from t2);a7select * from t3 where a not in (select b from t2);a63select * from t3 where a = some (select b from t2);a7select * from t3 where a <> any (select b from t2);a63select * from t3 where a = all (select b from t2);a7select * from t3 where a <> all (select b from t2);a63insert into t2 values (100, 5);select * from t3 where a < any (select b from t2);a63select * from t3 where a < all (select b from t2);a3select * from t3 where a >= any (select b from t2);a67explain extended select * from t3 where a >= any (select b from t2);id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY t3 ALL NULL NULL NULL NULL 3 Using where2 SUBQUERY t2 ALL NULL NULL NULL NULL 3 Warnings:Note 1003 select `test`.`t3`.`a` AS `a` from `test`.`t3` where <nop>((`test`.`t3`.`a` >= (select min(`test`.`t2`.`b`) from `test`.`t2`)))select * from t3 where a >= all (select b from t2);a7delete from t2 where a=100;select * from t3 where a in (select a,b from t2);ERROR 21000: Operand should contain 1 column(s)select * from t3 where a in (select * from t2);ERROR 21000: Operand should contain 1 column(s)insert into t4 values (12,7),(1,7),(10,9),(9,6),(7,6),(3,9),(1,10);select b,max(a) as ma from t4 group by b having b < (select max(t2.a) from t2 where t2.b=t4.b);b mainsert into t2 values (2,10);select b,max(a) as ma from t4 group by b having ma < (select max(t2.a) from t2 where t2.b=t4.b);b ma10 1delete from t2 where a=2 and b=10;select b,max(a) as ma from t4 group by b having b >= (select max(t2.a) from t2 where t2.b=t4.b);b ma7 12create table t5 (a int);select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a), a from t2;(select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a) aNULL 12 2insert into t5 values (5);select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a), a from t2;(select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a) aNULL 12 2insert into t5 values (2);select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a), a from t2;(select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a) aNULL 12 2explain extended select (select a from t1 where t1.a=t2.a union select a from t5 where t5.a=t2.a), a from t2;id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY t2 ALL NULL NULL NULL NULL 2 2 DEPENDENT SUBQUERY t1 system NULL NULL NULL NULL 1 3 DEPENDENT UNION t5 ALL NULL NULL NULL NULL 2 Using whereNULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL Warnings:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -