设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用查询设计器进行联合查询设计

2008-6-29 10:57| 发布者: tanhong| 查看: 965| 评论: 18

[align=left][b]一、联合查询的定义及相关基本概念[/b] “联合查询”也有称为“联集查询”,联合查询是通过UNION运算符将两个或多个表、查询结果或SELECT语句组合在一起,而构成的查询。[/align][align=center][attach]30781[/attach][/align][align=left] ACCESS 查询设计中“联合查询”对于初学者来说是相对较难的一种查询方式,因为 ACCESS 没有为我们提供建立联合查询的可视化向导,也不能直接用 ACCESS 查询设计器直观的进行编辑设计,而必须自行在查询的 SQL 视图中编写 SELECT 命令语句,对于 SQL 语句不是很熟悉或是初学者来说,有一定的难度。 [/align][align=center][attach]30782[/attach][/align][align=left] [b]SQL语法:[/b] [TABLE] query1 UNION [ALL] [TABLE] query2 [UNION [ALL] [TABLE] queryn [ ... ]] [/align][align=left][b]运算符:UNION[/b] [b]1、[/b]UNION是联合查询的关键运算符,正是通过UNION将两个或多个查询结果、表或SELECT语句合并起来; [b]2、[/b]在默认状态,UNION运算符会从头至尾检查合并后的结果,并去除重复记录,因此会减慢查询的运行速度; [b]3、[/b]在UNION后面加上ALL,则不会遍历检查合并后的结果,从而提高查询的运行速度,但这样会直接返回所有记录,而不会剔除其中重复记录。 [/align][align=left][b]联合查询基本原则:[/b][/align][list][*][align=left] 被合并的对象(查询结果、表及SELECT语句)输出的字段数必须相同;[/align][*][align=left] 字段类型无须相同的大小或数据类型,但数据类型须彼此相容;[/align][*][align=left] 最后一个SELECT语句才可以拥有ORDER BY参数,对查询结果进行排序;[/align][*][align=left] 各个查询结果或SELECT语句都可以使用GROUP BY与HAVING参数,但参数并不影响合并查询结果。[/align][/list] [align=left][b]二、用查询设计器进行联合查询设计[/b] 前面我们说过不能直接用查询设计器进行直观联合查询设计,但这并不是说不能用查询设计器来进行设计,我们可以用查询设计器先得到各查询结果的SELECT语句,再在SQL设计视图中加入运算符UNION,这样既可以检视各查询结果的正确性,同时也减少了我们书写SELECT语句的工作量。下面我们就结合实例学习如何用查询设计器进行联合查询的设计。[/align] [align=left][b]2-1查询范例:[/b] [b] “罗斯文”[/b]数据库中,业务往来单位的数据分为“客户”数据与“供应商”数据,为了方便管理,我们可以通过“联合查询”将两个表数据合并进行管理,建立“业务往来单位”查询,并按所在城市、公司进行排序; [/align][align=left][b]步骤一:[/b]获得客户查询结果,并将查询结果保存为“业务往来单位”查询[/align] [align=center][attach]30783[/attach][/align] [align=center][attach]30784[/attach][/align] [align=center][attach]30785[/attach][/align] [align=center][attach]30786[/attach][/align] [align=center][attach]30787[/attach][/align] [align=left][b]步骤二:[/b]获得供应商查询结果SELECT语句[/align] [align=center][attach]30788[/attach][/align][align=center][attach]30789[/attach][/align] [align=center][attach]30790[/attach][/align][align=center][attach]30791[/attach][/align] [align=left][b]步骤三:[/b]在SQL编辑视图中,组合两个查询的语句,完成联合查询[/align] [align=center][attach]30792[/attach][/align] [align=left]实例样本(内含本文Word版):[attach]30793[/attach]  [/align] [align=left]  本文是本人对联合查询使用的一点点心得,文中如有错漏之处,希望大家批评斧正。[/align][align=left]  因为本文只为让大家对联合查询有个初步而直观了解,所以没有做深入的探究,大家可以参看其它有关资料和书籍。[/align][align=left]  在以后的发帖中我也会结合个别实例,进一步就联合查询在数据库的中使用做些讲解,也欢迎大家与我交流。[/align][align=left]                                        江羽 2008.6.29[/align]详细内容:http://www.office-cn.net/forum.php?mod=viewthread&tid=62696
发表评论

最新评论

查看全部评论(18)

相关分类

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-3 19:29 , Processed in 0.074172 second(s), 16 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部