📄 union.result
字号:
drop table if exists t1,t2,t3,t4,t5,t6;CREATE TABLE t1 (a int not null, b char (10) not null);insert into t1 values(1,'a'),(2,'b'),(3,'c'),(3,'c');CREATE TABLE t2 (a int not null, b char (10) not null);insert into t2 values (3,'c'),(4,'d'),(5,'f'),(6,'e');select a,b from t1 union distinct select a,b from t2;a b1 a2 b3 c4 d5 f6 eselect a,b from t1 union all select a,b from t2;a b1 a2 b3 c3 c3 c4 d5 f6 eselect a,b from t1 union all select a,b from t2 order by b;a b1 a2 b3 c3 c3 c4 d6 e5 fselect a,b from t1 union all select a,b from t2 union select 7,'g';a b1 a2 b3 c4 d5 f6 e7 gselect 0,'#' union select a,b from t1 union all select a,b from t2 union select 7,'gg';0 #0 #1 a2 b3 c4 d5 f6 e7 ggselect a,b from t1 union select a,b from t1;a b1 a2 b3 cselect 't1',b,count(*) from t1 group by b UNION select 't2',b,count(*) from t2 group by b;t1 b count(*)t1 a 1t1 b 1t1 c 2t2 c 1t2 d 1t2 e 1t2 f 1(select a,b from t1 limit 2) union all (select a,b from t2 order by a) limit 4;a b1 a2 b3 c4 d(select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1);a b1 a2 b3 c(select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by b desc;a b3 c2 b1 a(select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by t1.b;ERROR 42000: Table 't1' from one of the SELECTs cannot be used in global ORDER clauseexplain extended (select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by b desc;id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY t1 ALL NULL NULL NULL NULL 4 2 UNION t2 ALL NULL NULL NULL NULL 4 Using filesortNULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL Using filesortWarnings:Note 1003 (select `test`.`t1`.`a` AS `a`,`test`.`t1`.`b` AS `b` from `test`.`t1` limit 2) union all (select `test`.`t2`.`a` AS `a`,`test`.`t2`.`b` AS `b` from `test`.`t2` order by `test`.`t2`.`a` limit 1) order by `b` desc(select sql_calc_found_rows a,b from t1 limit 2) union all (select a,b from t2 order by a) limit 2;a b1 a2 bselect found_rows();found_rows()6select sql_calc_found_rows a,b from t1 union all select a,b from t2 limit 2;a b1 a2 bselect found_rows();found_rows()8explain select a,b from t1 union all select a,b from t2;id select_type table type possible_keys key key_len ref rows Extra1 PRIMARY t1 ALL NULL NULL NULL NULL 4 2 UNION t2 ALL NULL NULL NULL NULL 4 NULL UNION RESULT <union1,2> ALL NULL NULL NULL NULL NULL explain select xx from t1 union select 1;ERROR 42S22: Unknown column 'xx' in 'field list'explain select a,b from t1 union select 1;ERROR 21000: The used SELECT statements have a different number of columnsexplain select 1 union select a,b from t1 union select 1;ERROR 21000: The used SELECT statements have a different number of columnsexplain select a,b from t1 union select 1 limit 0;ERROR 21000: The used SELECT statements have a different number of columnsselect a,b from t1 into outfile 'skr' union select a,b from t2;ERROR HY000: Incorrect usage of UNION and INTOselect a,b from t1 order by a union select a,b from t2;ERROR HY000: Incorrect usage of UNION and ORDER BYinsert into t3 select a from t1 order by a union select a from t2;ERROR HY000: Incorrect usage of UNION and ORDER BYcreate table t3 select a,b from t1 union select a from t2;ERROR 21000: The used SELECT statements have a different number of columnsselect a,b from t1 union select a from t2;ERROR 21000: The used SELECT statements have a different number of columnsselect * from t1 union select a from t2;ERROR 21000: The used SELECT statements have a different number of columnsselect a from t1 union select * from t2;ERROR 21000: The used SELECT statements have a different number of columnsselect * from t1 union select SQL_BUFFER_RESULT * from t2;ERROR 42000: Incorrect usage/placement of 'SQL_BUFFER_RESULT'create table t3 select a,b from t1 union all select a,b from t2;insert into t3 select a,b from t1 union all select a,b from t2;replace into t3 select a,b as c from t1 union all select a,b from t2;drop table t1,t2,t3;select * union select 1;ERROR HY000: No tables usedselect 1 as a,(select a union select a);a (select a union select a)1 1(select 1) union (select 2) order by 0;ERROR 42S22: Unknown column '0' in 'order clause'SELECT @a:=1 UNION SELECT @a:=@a+1;@a:=112(SELECT 1) UNION (SELECT 2) ORDER BY (SELECT a);ERROR 42S22: Unknown column 'a' in 'field list'(SELECT 1,3) UNION (SELECT 2,1) ORDER BY (SELECT 2);1 31 32 1CREATE TABLE t1 (`pseudo` char(35) NOT NULL default '',`pseudo1` char(35) NOT NULL default '',`same` tinyint(1) unsigned NOT NULL default '1',PRIMARY KEY (`pseudo1`),KEY `pseudo` (`pseudo`)) ENGINE=MyISAM;INSERT INTO t1 (pseudo,pseudo1,same) VALUES ('joce', 'testtt', 1),('joce', 'tsestset', 1),('dekad', 'joce', 1);SELECT pseudo FROM t1 WHERE pseudo1='joce' UNION SELECT pseudo FROM t1 WHERE pseudo='joce';pseudodekadjoceSELECT pseudo1 FROM t1 WHERE pseudo1='joce' UNION SELECT pseudo1 FROM t1 WHERE pseudo='joce';pseudo1jocetesttttsestsetSELECT * FROM t1 WHERE pseudo1='joce' UNION SELECT * FROM t1 WHERE pseudo='joce' order by pseudo desc,pseudo1 desc;pseudo pseudo1 samejoce tsestset 1joce testtt 1dekad joce 1SELECT pseudo1 FROM t1 WHERE pseudo='joce' UNION SELECT pseudo FROM t1 WHERE pseudo1='joce';pseudo1testtttsestsetdekadSELECT pseudo1 FROM t1 WHERE pseudo='joce' UNION ALL SELECT pseudo FROM t1 WHERE pseudo1='joce';pseudo1testtttsestsetdekadSELECT pseudo1 FROM t1 WHERE pseudo='joce' UNION SELECT 1;pseudo1testtttsestset1drop table t1;create table t1 (a int);create table t2 (a int);insert into t1 values (1),(2),(3),(4),(5);insert into t2 values (11),(12),(13),(14),(15);(select * from t1 limit 2) union (select * from t2 limit 3) limit 4;a121112(select * from t1 limit 2) union (select * from t2 limit 3);a12111213(select * from t1 limit 2) union (select * from t2 limit 20,3);a12set SQL_SELECT_LIMIT=2;(select * from t1 limit 1) union (select * from t2 limit 3);a111set SQL_SELECT_LIMIT=DEFAULT;drop table t1,t2;CREATE TABLE t1 (cid smallint(5) unsigned NOT NULL default '0',cv varchar(250) NOT NULL default '',PRIMARY KEY (cid),UNIQUE KEY cv (cv)) ;INSERT INTO t1 VALUES (8,'dummy');CREATE TABLE t2 (cid bigint(20) unsigned NOT NULL auto_increment,cap varchar(255) NOT NULL default '',PRIMARY KEY (cid),KEY cap (cap)) ;CREATE TABLE t3 (gid bigint(20) unsigned NOT NULL auto_increment,gn varchar(255) NOT NULL default '',must tinyint(4) default NULL,PRIMARY KEY (gid),KEY gn (gn)) ;INSERT INTO t3 VALUES (1,'V1',NULL);CREATE TABLE t4 (uid bigint(20) unsigned NOT NULL default '0',gid bigint(20) unsigned default NULL,rid bigint(20) unsigned default NULL,cid bigint(20) unsigned default NULL,UNIQUE KEY m (uid,gid,rid,cid),KEY uid (uid),KEY rid (rid),KEY cid (cid),KEY container (gid,rid,cid)) ;INSERT INTO t4 VALUES (1,1,NULL,NULL);CREATE TABLE t5 (rid bigint(20) unsigned NOT NULL auto_increment,rl varchar(255) NOT NULL default '',PRIMARY KEY (rid),KEY rl (rl)) ;CREATE TABLE t6 (uid bigint(20) unsigned NOT NULL auto_increment,un varchar(250) NOT NULL default '',uc smallint(5) unsigned NOT NULL default '0',PRIMARY KEY (uid),UNIQUE KEY nc (un,uc),KEY un (un)) ;INSERT INTO t6 VALUES (1,'test',8);SELECT t4.uid, t5.rl, t3.gn as g1, t4.cid, t4.gid as gg FROM t3, t6, t1, t4 left join t5 on t5.rid = t4.rid left join t2 on t2.cid = t4.cid WHERE t3.gid=t4.gid AND t6.uid = t4.uid AND t6.uc = t1.cid AND t1.cv = "dummy" AND t6.un = "test";uid rl g1 cid gg1 NULL V1 NULL 1SELECT t4.uid, t5.rl, t3.gn as g1, t4.cid, t4.gid as gg FROM t3, t6, t1, t4 left join t5 on t5.rid = t4.rid left join t2 on t2.cid = t4.cid WHERE t3.gid=t4.gid AND t6.uid = t4.uid AND t3.must IS NOT NULL AND t6.uc = t1.cid AND t1.cv = "dummy" AND t6.un = "test";uid rl g1 cid gg(SELECT t4.uid, t5.rl, t3.gn as g1, t4.cid, t4.gid as gg FROM t3, t6, t1, t4 left join t5 on t5.rid = t4.rid left join t2 on t2.cid = t4.cid WHERE t3.gid=t4.gid AND t6.uid = t4.uid AND t3.must IS NOT NULL AND t6.uc = t1.cid AND t1.cv = "dummy" AND t6.un = "test") UNION (SELECT t4.uid, t5.rl, t3.gn as g1, t4.cid, t4.gid as gg FROM t3, t6, t1, t4 left join t5 on t5.rid = t4.rid left join t2 on t2.cid = t4.cid WHERE t3.gid=t4.gid AND t6.uid = t4.uid AND t6.uc = t1.cid AND t1.cv = "dummy" AND t6.un = "test");uid rl g1 cid gg1 NULL V1 NULL 1drop table t1,t2,t3,t4,t5,t6;CREATE TABLE t1 (a int not null, b char (10) not null);insert into t1 values(1,'a'),(2,'b'),(3,'c'),(3,'c');CREATE TABLE t2 (a int not null, b char (10) not null);insert into t2 values (3,'c'),(4,'d'),(5,'f'),(6,'e');create table t3 select a,b from t1 union select a,b from t2;create table t4 (select a,b from t1) union (select a,b from t2) limit 2;insert into t4 select a,b from t1 union select a,b from t2;insert into t3 (select a,b from t1) union (select a,b from t2) limit 2;select * from t3;a b1 a2 b3 c4 d5 f6 e1 a2 bselect * from t4;a b1 a2 b1 a2 b3 c4 d5 f6 edrop table t1,t2,t3,t4;create table t1 (a int);insert into t1 values (1),(2),(3);create table t2 (a int);insert into t2 values (3),(4),(5);(SELECT SQL_CALC_FOUND_ROWS * FROM t1) UNION all (SELECT * FROM t2) LIMIT 1;a1select found_rows();found_rows()6(SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1) UNION all (SELECT * FROM t2) LIMIT 2;a13select found_rows();found_rows()4(SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1) UNION all (SELECT * FROM t2);a1345select found_rows();found_rows()4(SELECT SQL_CALC_FOUND_ROWS * FROM t1) UNION all (SELECT * FROM t2 LIMIT 1);a1233select found_rows();found_rows()4(SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1) UNION SELECT * FROM t2 LIMIT 1;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 '' at line 1SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION all SELECT * FROM t2 LIMIT 2;a13select found_rows();found_rows()6SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION all SELECT * FROM t2 LIMIT 2;a12select found_rows();found_rows()6SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION SELECT * FROM t2 LIMIT 2;a12select found_rows();found_rows()6SELECT SQL_CALC_FOUND_ROWS * FROM t1 UNION SELECT * FROM t2 LIMIT 100;a12345select found_rows();found_rows()6SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 100 UNION SELECT * FROM t2;a12345select found_rows();found_rows()5SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION SELECT * FROM t2;a1345select found_rows();found_rows()6SELECT SQL_CALC_FOUND_ROWS * FROM t1 LIMIT 1 UNION SELECT * FROM t2 LIMIT 2;a13select found_rows();found_rows()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -