📄 derived.result
字号:
2 DERIVED mp ALL NULL NULL NULL NULL 9 Using temporary; Using filesort2 DERIVED m1 eq_ref PRIMARY PRIMARY 3 test.mp.mat_id 1 explain SELECT STRAIGHT_JOIN d.pla_id, m2.test FROM t1 m2 INNER JOIN (SELECT mp.pla_id, MIN(m1.matintnum) AS matintnum FROM t2 mp INNER JOIN t1 m1 ON mp.mat_id=m1.mat_id GROUP BY mp.pla_id) d ON d.matintnum=m2.matintnum;id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY m2 ALL NULL NULL NULL NULL 9 1 PRIMARY <derived2> ALL NULL NULL NULL NULL 6 Using where2 DERIVED mp ALL NULL NULL NULL NULL 9 Using temporary; Using filesort2 DERIVED m1 eq_ref PRIMARY PRIMARY 3 test.mp.mat_id 1 drop table t1,t2;SELECT a.x FROM (SELECT 1 AS x) AS a HAVING a.x = 1;x1create table t1 select 1 as a;select 2 as a from (select * from t1) b;ERROR 3D000: No database selecteduse test;select 2 as a from (select * from t1) b;a2drop table t1;select mail_id, if(folder.f_description!='', folder.f_description, folder.f_name) as folder_name, date, address_id, phrase, address, subject from folder, (select mail.mail_id as mail_id, date_format(mail.h_date, '%b %e, %Y %h:%i') as date, mail.folder_id, sender.address_id as address_id, sender.phrase as phrase, sender.address as address, mail.h_subject as subject from mail left join mxa as mxa_sender on mail.mail_id=mxa_sender.mail_id and mxa_sender.type='from' left join address as sender on mxa_sender.address_id=sender.address_id mxa as mxa_recipient, address as recipient, where 1 and mail.mail_id=mxa_recipient.mail_id and mxa_recipient.address_id=recipient.address_id and mxa_recipient.type='to' and match(sender.phrase, sender.address, sender.comment) against ('jeremy' in boolean mode) and match(recipient.phrase, recipient.address, recipient.comment) against ('monty' in boolean mode) order by mail.h_date desc limit 0, 25 ) as query where query.folder_id=folder.folder_id;ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mxa as mxa_recipient, address as recipient, where 1 and mail.mail_id=mxa_r' at line 1create table t1 (a int);insert into t1 values (1),(2),(3);update (select * from t1) as t1 set a = 5;ERROR HY000: The target table t1 of the UPDATE is not updatabledelete from (select * from t1);ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(select * from t1)' at line 1insert into (select * from t1) values (5);ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(select * from t1) values (5)' at line 1drop table t1;create table t1 (E1 INTEGER UNSIGNED NOT NULL, E2 INTEGER UNSIGNED NOT NULL, E3 INTEGER UNSIGNED NOT NULL, PRIMARY KEY(E1));insert into t1 VALUES(1,1,1), (2,2,1);select count(*) from t1 INNER JOIN (SELECT A.E1, A.E2, A.E3 FROM t1 AS A WHERE A.E3 = (SELECT MAX(B.E3) FROM t1 AS B WHERE A.E2 = B.E2)) AS THEMAX ON t1.E1 = THEMAX.E2 AND t1.E1 = t1.E2;count(*)2explain select count(*) from t1 INNER JOIN (SELECT A.E1, A.E2, A.E3 FROM t1 AS A WHERE A.E3 = (SELECT MAX(B.E3) FROM t1 AS B WHERE A.E2 = B.E2)) AS THEMAX ON t1.E1 = THEMAX.E2 AND t1.E1 = t1.E2;id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 1 PRIMARY t1 eq_ref PRIMARY PRIMARY 4 THEMAX.E2 1 Using where2 DERIVED A ALL NULL NULL NULL NULL 2 Using where3 DEPENDENT SUBQUERY B ALL NULL NULL NULL NULL 2 Using wheredrop table t1;create table t1 (a int);insert into t1 values (1),(2);select * from ( select * from t1 union select * from t1) a,(select * from t1 union select * from t1) b;a a1 12 11 22 2explain select * from ( select * from t1 union select * from t1) a,(select * from t1 union select * from t1) b;id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2 1 PRIMARY <derived4> ALL NULL NULL NULL NULL 2 4 DERIVED t1 ALL NULL NULL NULL NULL 2 5 UNION t1 ALL NULL NULL NULL NULL 2 NULL UNION RESULT <union4,5> ALL NULL NULL NULL NULL NULL 2 DERIVED t1 ALL NULL NULL NULL NULL 2 3 UNION t1 ALL NULL NULL NULL NULL 2 NULL UNION RESULT <union2,3> ALL NULL NULL NULL NULL NULL drop table t1;CREATE TABLE `t1` (`N` int(11) unsigned NOT NULL default '0',`M` tinyint(1) default '0') ENGINE=MyISAM DEFAULT CHARSET=latin1;INSERT INTO `t1` (N, M) VALUES (1, 0),(1, 0),(1, 0),(2, 0),(2, 0),(3, 0);UPDATE `t1` AS P1 INNER JOIN (SELECT N FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N SET P1.M = 2;select * from t1;N M1 21 21 22 22 23 0UPDATE `t1` AS P1 INNER JOIN (SELECT N FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N SET P1.M = 2, P2.N = 2;ERROR HY000: The target table P2 of the UPDATE is not updatableUPDATE `t1` AS P1 INNER JOIN (SELECT aaaa FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N SET P1.M = 2;ERROR 42S22: Unknown column 'aaaa' in 'field list'delete P1.* from `t1` AS P1 INNER JOIN (SELECT N FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N;select * from t1;N M3 0delete P1.*,p2.* from `t1` AS P1 INNER JOIN (SELECT N FROM `t1` GROUP BY N HAVING Count(M) > 1) AS p2 ON P1.N = p2.N;ERROR HY000: The target table p2 of the DELETE is not updatabledelete P1.* from `t1` AS P1 INNER JOIN (SELECT aaa FROM `t1` GROUP BY N HAVING Count(M) > 1) AS P2 ON P1.N = P2.N;ERROR 42S22: Unknown column 'aaa' in 'field list'drop table t1;CREATE TABLE t1 (OBJECTID int(11) NOT NULL default '0',SORTORDER int(11) NOT NULL auto_increment,KEY t1_SortIndex (SORTORDER),KEY t1_IdIndex (OBJECTID)) ENGINE=MyISAM DEFAULT CHARSET=latin1;CREATE TABLE t2 (ID int(11) default NULL,PARID int(11) default NULL,UNIQUE KEY t2_ID_IDX (ID),KEY t2_PARID_IDX (PARID)) engine=MyISAM DEFAULT CHARSET=latin1;INSERT INTO t2 VALUES (1000,0),(1001,0),(1002,0),(1003,0),(1008,1),(1009,1),(1010,1),(1011,1),(1016,2);CREATE TABLE t3 (ID int(11) default NULL,DATA decimal(10,2) default NULL,UNIQUE KEY t3_ID_IDX (ID)) engine=MyISAM DEFAULT CHARSET=latin1;INSERT INTO t3 VALUES (1000,0.00),(1001,0.25),(1002,0.50),(1003,0.75),(1008,1.00),(1009,1.25),(1010,1.50),(1011,1.75);select 497, TMP.ID, NULL from (select 497 as ID, MAX(t3.DATA) as DATA from t1 join t2 on (t1.ObjectID = t2.ID) join t3 on (t1.ObjectID = t3.ID) group by t2.ParID order by DATA DESC) as TMP;497 ID NULLdrop table t1, t2, t3;CREATE TABLE t1 (name char(1) default NULL, val int(5) default NULL);INSERT INTO t1 VALUES ('a',1), ('a',2), ('a',2), ('a',2), ('a',3), ('a',6), ('a',7), ('a',11), ('a',11), ('a',12), ('a',13), ('a',13), ('a',20), ('b',2), ('b',3), ('b',4), ('b',5);SELECT s.name, AVG(s.val) AS median FROM (SELECT x.name, x.val FROM t1 x, t1 y WHERE x.name=y.name GROUP BY x.name, x.val HAVING SUM(y.val <= x.val) >= COUNT(*)/2 AND SUM(y.val >= x.val) >= COUNT(*)/2) AS s GROUP BY s.name;name mediana 7.0000b 3.5000explain SELECT s.name, AVG(s.val) AS median FROM (SELECT x.name, x.val FROM t1 x, t1 y WHERE x.name=y.name GROUP BY x.name, x.val HAVING SUM(y.val <= x.val) >= COUNT(*)/2 AND SUM(y.val >= x.val) >= COUNT(*)/2) AS s GROUP BY s.name;id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY <derived2> ALL NULL NULL NULL NULL 3 Using temporary; Using filesort2 DERIVED x ALL NULL NULL NULL NULL 17 Using temporary; Using filesort2 DERIVED y ALL NULL NULL NULL NULL 17 Using wheredrop table t1;create table t2 (a int, b int, primary key (a));insert into t2 values (1,7),(2,7);explain select a from t2 where a>1;id select_type table type possible_keys key key_len ref rows Extra1 SIMPLE t2 index PRIMARY PRIMARY 4 NULL 2 Using where; Using indexexplain select a from (select a from t2 where a>1) tt;id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY <derived2> system NULL NULL NULL NULL 1 2 DERIVED t2 index PRIMARY PRIMARY 4 NULL 2 Using where; Using indexdrop table t2;CREATE TABLE `t1` ( `itemid` int(11) NOT NULL default '0', `grpid` varchar(15) NOT NULL default '', `vendor` int(11) NOT NULL default '0', `date_` date NOT NULL default '0000-00-00', `price` decimal(12,2) NOT NULL default '0.00', PRIMARY KEY (`itemid`,`grpid`,`vendor`,`date_`), KEY `itemid` (`itemid`,`vendor`), KEY `itemid_2` (`itemid`,`date_`));insert into t1 values (128, 'rozn', 2, now(), 10),(128, 'rozn', 1, now(), 10);SELECT MIN(price) min, MAX(price) max, AVG(price) avg FROM (SELECT SUBSTRING( MAX(concat(date_,";",price)), 12) price FROM t1 WHERE itemid=128 AND grpid='rozn' GROUP BY itemid, grpid, vendor) lastprices;min max avg10.00 10.00 10DROP TABLE t1;create table t1 (a integer, b integer);insert into t1 values (1,4), (2,2),(2,2), (4,1),(4,1),(4,1),(4,1);select distinct sum(b) from t1 group by a;sum(b)4select distinct sum(b) from (select a,b from t1) y group by a;sum(b)4drop table t1;CREATE TABLE t1 (a char(10), b char(10));INSERT INTO t1 VALUES ('root','localhost'), ('root','%');SELECT * FROM (SELECT (SELECT a.a FROM t1 AS a WHERE a.a = b.a) FROM t1 AS b) AS c;ERROR 21000: Subquery returns more than 1 rowDROP TABLE t1;create table t1(a int);create table t2(a int);create table t3(a int);insert into t1 values(1),(1);insert into t2 values(2),(2);insert into t3 values(3),(3);select * from t1 union distinct select * from t2 union all select * from t3;a1233select * from (select * from t1 union distinct select * from t2 union all select * from t3) X;a1233drop table t1, t2, t3;create table t1 (a int);create table t2 (a int);select * from (select * from t1,t2) foo;ERROR 42S21: Duplicate column name 'a'drop table t1,t2;create table t1 (ID int unsigned not null auto_increment,DATA varchar(5) not null, primary key (ID));create table t2 (ID int unsigned not null auto_increment,DATA varchar(5) not null, FID int unsigned not null,primary key (ID));select A.* from (t1 inner join (select * from t2) as A on t1.ID = A.FID);ID DATA FIDselect t2.* from ((select * from t1) as A inner join t2 on A.ID = t2.FID);ID DATA FIDselect t2.* from (select * from t1) as A inner join t2 on A.ID = t2.FID;ID DATA FIDdrop table t1, t2;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -