2001-08-02 06:29:50 +03:00
|
|
|
#
|
|
|
|
# Test of unions
|
|
|
|
#
|
|
|
|
|
2003-01-06 01:48:59 +02:00
|
|
|
--disable_warnings
|
2001-08-12 16:25:28 +03:00
|
|
|
drop table if exists t1,t2,t3;
|
2003-01-06 01:48:59 +02:00
|
|
|
--enable_warnings
|
|
|
|
|
2001-08-02 06:29:50 +03:00
|
|
|
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 select a,b from t2;
|
|
|
|
select a,b from t1 union all select a,b from t2;
|
|
|
|
select a,b from t1 union all select a,b from t2 order by b;
|
|
|
|
select a,b from t1 union all select a,b from t2 union select 7,'g';
|
|
|
|
select 0,'#' union select a,b from t1 union all select a,b from t2 union select 7,'gg';
|
|
|
|
select a,b from t1 union select a,b from t1;
|
|
|
|
select 't1',b,count(*) from t1 group by b UNION select 't2',b,count(*) from t2 group by b;
|
|
|
|
|
2001-10-25 14:41:49 +03:00
|
|
|
#test alternate syntax for unions
|
|
|
|
(select a,b from t1 limit 2) union all (select a,b from t2 order by a) limit 4;
|
2001-12-13 02:31:19 +02:00
|
|
|
(select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1);
|
|
|
|
(select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by b desc;
|
2002-12-02 20:18:51 +02:00
|
|
|
--error 1248
|
2002-11-30 22:53:50 +02:00
|
|
|
(select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by t1.b;
|
2002-04-02 20:08:55 +03:00
|
|
|
explain (select a,b from t1 limit 2) union all (select a,b from t2 order by a limit 1) order by b desc;
|
2002-09-26 23:08:22 +03:00
|
|
|
#(select sql_calc_found_rows a,b from t1 limit 2) union all (select a,b from t2 order by a) limit 2;
|
2002-04-03 17:52:31 +03:00
|
|
|
select found_rows();
|
2002-07-24 19:55:08 +03:00
|
|
|
|
|
|
|
#
|
2001-08-14 20:33:49 +03:00
|
|
|
# Test some error conditions with UNION
|
2002-07-24 19:55:08 +03:00
|
|
|
#
|
|
|
|
|
2001-08-02 06:29:50 +03:00
|
|
|
explain select a,b from t1 union all select a,b from t2;
|
|
|
|
|
2002-02-28 21:58:32 +02:00
|
|
|
--error 1054
|
|
|
|
explain select xx from t1 union select 1;
|
|
|
|
explain select a,b from t1 union select 1;
|
|
|
|
explain select 1 union select a,b from t1 union select 1;
|
|
|
|
explain select a,b from t1 union select 1 limit 0;
|
|
|
|
|
2001-11-04 15:43:41 +02:00
|
|
|
--error 1221
|
2001-08-02 06:29:50 +03:00
|
|
|
select a,b from t1 into outfile 'skr' union select a,b from t2;
|
2001-08-13 15:24:29 +03:00
|
|
|
|
2001-11-04 15:43:41 +02:00
|
|
|
--error 1221
|
2001-08-13 15:24:29 +03:00
|
|
|
select a,b from t1 order by a union select a,b from t2;
|
|
|
|
|
2001-11-04 15:43:41 +02:00
|
|
|
--error 1221
|
2001-08-14 20:33:49 +03:00
|
|
|
insert into t3 select a from t1 order by a union select a from t2;
|
|
|
|
|
2001-11-04 15:43:41 +02:00
|
|
|
--error 1222
|
2001-09-17 15:40:03 +03:00
|
|
|
create table t3 select a,b from t1 union select a from t2;
|
|
|
|
|
2001-11-04 15:43:41 +02:00
|
|
|
--error 1222
|
2001-08-02 06:29:50 +03:00
|
|
|
select a,b from t1 union select a from t2;
|
2001-08-14 20:33:49 +03:00
|
|
|
|
2001-11-04 15:43:41 +02:00
|
|
|
--error 1222
|
2001-09-17 15:40:03 +03:00
|
|
|
select * from t1 union select a from t2;
|
|
|
|
|
2001-11-04 15:43:41 +02:00
|
|
|
--error 1222
|
2001-09-17 15:40:03 +03:00
|
|
|
select a from t1 union select * from t2;
|
|
|
|
|
2002-07-24 19:55:08 +03:00
|
|
|
--error 1234
|
|
|
|
select * from t1 union select SQL_BUFFER_RESULT * from t2;
|
|
|
|
|
2001-08-14 20:33:49 +03:00
|
|
|
# Test CREATE, INSERT and REPLACE
|
2001-08-12 16:25:28 +03:00
|
|
|
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;
|
2001-08-14 20:33:49 +03:00
|
|
|
replace into t3 select a,b as c from t1 union all select a,b from t2;
|
|
|
|
|
2001-08-12 16:25:28 +03:00
|
|
|
drop table t1,t2,t3;
|
2001-09-14 19:50:56 +03:00
|
|
|
|
|
|
|
#
|
|
|
|
# Test bug reported by joc@presence-pc.com
|
|
|
|
#
|
|
|
|
|
|
|
|
CREATE 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`)
|
|
|
|
) TYPE=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';
|
2001-09-17 22:44:51 +03:00
|
|
|
SELECT pseudo1 FROM t1 WHERE pseudo1='joce' UNION SELECT pseudo1 FROM t1 WHERE pseudo='joce';
|
2001-09-22 17:40:57 +03:00
|
|
|
SELECT * FROM t1 WHERE pseudo1='joce' UNION SELECT * FROM t1 WHERE pseudo='joce' order by pseudo desc,pseudo1 desc;
|
2001-09-21 03:38:35 +03:00
|
|
|
SELECT pseudo1 FROM t1 WHERE pseudo='joce' UNION SELECT pseudo FROM t1 WHERE pseudo1='joce';
|
|
|
|
SELECT pseudo1 FROM t1 WHERE pseudo='joce' UNION ALL SELECT pseudo FROM t1 WHERE pseudo1='joce';
|
|
|
|
SELECT pseudo1 FROM t1 WHERE pseudo='joce' UNION SELECT 1;
|
2001-09-14 19:50:56 +03:00
|
|
|
drop table t1;
|
2003-01-06 01:48:59 +02:00
|
|
|
|
2002-03-19 14:07:52 +02:00
|
|
|
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;
|
|
|
|
(select * from t1 limit 2) union (select * from t2 limit 3);
|
2002-03-22 13:26:13 +02:00
|
|
|
(select * from t1 limit 2) union (select * from t2 limit 20,3);
|
|
|
|
set SQL_SELECT_LIMIT=2;
|
2002-07-23 18:31:22 +03:00
|
|
|
(select * from t1 limit 1) union (select * from t2 limit 3);
|
2002-03-22 13:26:13 +02:00
|
|
|
set SQL_SELECT_LIMIT=DEFAULT;
|
2002-03-19 14:07:52 +02:00
|
|
|
drop table t1,t2;
|
2002-10-17 16:20:14 +03:00
|
|
|
|
|
|
|
--error 1096
|
|
|
|
select * union select 1;
|
2002-12-09 20:47:47 +02:00
|
|
|
select 1 as a,(select a union select a);
|