如果一个数据库中含有两个相同的表如何动态的合并

vbqing 2001-08-08 05:38:21
我现在做一个宿舍管理系统,在新生资料输入时候遇到困难,我要把每年的新入学的学生让管理员输入原来的数据库"新生资料"中,原来的数据库中还包含一个"老生资料"表,两个表的字段完全一样,但由于要求建立数据库的时候不能够合并,但是当用户需要查询所有学生的资料的时候必须把两个表的内容并起来,关于这点我无法实现,请高手指点
我的email:qing19ok@sina.com
...全文
108 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
tyd163xx 2001-08-08
对啊,用union就可以了啊
回复
一川烟草123 2001-08-08
同意斑竹意見
回复
playyuer 2001-08-08
select * from new
union all
select * from old
回复
DTWUJP 2001-08-08
使用 UNION 运算符组合多个结果
UNION 运算符使您得以将两个或多个 SELECT 语句的结果组合成一个结果集。使用 UNION 组合的结果集都必须具有相同的结构。而且它们的列数必须相同,并且相应的结果集列的数据类型必须兼容。有关更多信息,请参见 UNION 运算符使用指南。

UNION 的指定方式如下:

select_statement UNION [ALL] select_statement

例如,Table1 和 Table2 具有相同的两列结构。

Table1 Table2
ColumnA ColumnB ColumnC ColumnD
char(4) int char(4) int
------- --- ------- ---
abc 1 ghi 3
def 2 jkl 4
ghi 3 mno 5



下面的查询在这两个表之间创建 UNION 运算:

SELECT * FROM Table1
UNION
SELECT * FROM Table2

下面是结果集:

ColumnA ColumnB
------- --------
abc 1
def 2
ghi 3
jkl 4
mno 5

UNION 的结果集列名与 UNION 运算符中第一个 SELECT 语句的结果集中的列名相同。另一个 SELECT 语句的结果集列名将被忽略。

默认情况下,UNION 运算符从结果集中删除重复的行。如果使用 ALL 关键字,那么结果中将包含所有行并且将不删除重复的行。

UNION 运算的准确结果取决于安装过程中选择的排序规则和 ORDER BY 子句。有关不同排序规则的效果的更多信息,请参见 SQL Server 排序规则基础知识。

Transact-SQL 语句中可以出现任意数目的 UNION 运算符,例如:

SELECT * FROM TableA
UNION
SELECT * FROM TableB
UNION
SELECT * FROM TableC
UNION
SELECT * FROM TableD

默认情况下,Microsoft® SQL Server™ 2000 从左到右对包含 UNION 运算符的语句进行取值。使用圆括号指定求值的顺序。例如,以下语句并不等价:

/* First statement. */
SELECT * FROM TableA
UNION ALL
( SELECT * FROM TableB
UNION
SELECT * FROM TableC
)
GO

/* Second statement. */
(SELECT * FROM TableA
UNION ALL
SELECT * FROM TableB
)
UNION
SELECT * FROM TableC)
GO

在第一个语句中,将消除 TableB 和 TableC 之间的联合中的重复行。而在该集与 TableA 之间的并集中,不消除重复行。在第二个语句中,TableA 和 TableB 之间的联合中包含重复行,但在随后与 TableC 的联合中将消除。ALL 关键字对此表达式的最终结果没有影响。

如果使用 UNION 运算符,那么单独的 SELECT 语句不能包含其自己的 ORDER BY 或 COMPUTE 子句。只能在最后一个 SELECT 语句的后面使用一个 ORDER BY 或 COMPUTE 子句;该子句适用于最终的组合结果集。GROUP BY 和 HAVING 子句只能在单独的 SELECT 语句中指定。



你的可用
select * from new union select * from old
回复
发帖

1188

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2001-08-08 05:38
社区公告
暂无公告