在SQL中,对于并运算,可以使用union关键字。
例如:
SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2
在学习过程中,我产生了一个疑问,如果两个表的属性名称不同会出现什么情况呢?
直接模拟了一个例子,构建代码如下:
create table employee (empname char(6), numchildren int ) create table dependent (depname char(6), age int ) insert into employee values('haohao',2); insert into employee values('haohao',4); insert into employee values('fgsd',5); insert into employee values('hds',7); insert into employee values('hauuo',9); insert into employee values('hsao',4); insert into employee values('hhao',5); insert into dependent values('haohao',2); insert into dependent values('hdgso',2); insert into dependent values('hreo',2); insert into dependent values('hjh',2); insert into dependent values('haaao',2);
这两个表的属性只是数据类型相同,测试效果如下:
(select empname,numchildren from employee) union (select depname,age from dependent )
结果为:
"hjh ";2
"hhao ";5
"haohao";2
"hdgso ";2
"haohao";4
"fgsd ";5
"hds ";7
"hsao ";4
"haaao ";2
"hreo ";2
"hauuo ";9
可以看出,进行了合并,并且去除了重复。
后来在W3School中的SQL模块看到了对于并运算的定义:
“请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。”
参考链接:http://www.w3school.com.cn/sql/sql_union.asp
2015-05-20
17:58:35