Office中国论坛/Access中国论坛

标题: (分享)用查询设计器进行联合查询设计 [打印本页]

作者: tanhong    时间: 2008-6-29 10:55
标题: (分享)用查询设计器进行联合查询设计
一、联合查询的定义及相关基本概念                                    
      “联合查询”也有称为“联集查询”,联合查询是通过UNION运算符将两个或多个表、查询结果或SELECT语句组合在一起,而构成的查询。
[attach]30781[/attach]

       ACCESS 查询设计中“联合查询”对于初学者来说是相对较难的一种查询方式,因为 ACCESS 没有为我们提供建立联合查询的可视化向导,也不能直接用 ACCESS 查询设计器直观的进行编辑设计,而必须自行在查询的 SQL 视图中编写 SELECT 命令语句,对于 SQL 语句不是很熟悉或是初学者来说,有一定的难度。
[attach]30782[/attach]

SQL语法:
[TABLE] query1 UNION [ALL] [TABLE] query2 [UNION [ALL] [TABLE] queryn [ ... ]]
运算符:UNION
    1、UNION是联合查询的关键运算符,正是通过UNION将两个或多个查询结果、表或SELECT语句合并起来;
    2、在默认状态,UNION运算符会从头至尾检查合并后的结果,并去除重复记录,因此会减慢查询的运行速度;
    3、在UNION后面加上ALL,则不会遍历检查合并后的结果,从而提高查询的运行速度,但这样会直接返回所有记录,而不会剔除其中重复记录。
联合查询基本原则:

二、用查询设计器进行联合查询设计                                    
       前面我们说过不能直接用查询设计器进行直观联合查询设计,但这并不是说不能用查询设计器来进行设计,我们可以用查询设计器先得到各查询结果的SELECT语句,再在SQL设计视图中加入运算符UNION,这样既可以检视各查询结果的正确性,同时也减少了我们书写SELECT语句的工作量。下面我们就结合实例学习如何用查询设计器进行联合查询的设计。

2-1查询范例:
      “罗斯文”数据库中,业务往来单位的数据分为“客户”数据与“供应商”数据,为了方便管理,我们可以通过“联合查询”将两个表数据合并进行管理,建立“业务往来单位”查询,并按所在城市、公司进行排序;
步骤一:获得客户查询结果,并将查询结果保存为“业务往来单位”查询

[attach]30783[/attach]

[attach]30784[/attach]

[attach]30785[/attach]

[attach]30786[/attach]

[attach]30787[/attach]


步骤二:获得供应商查询结果SELECT语句

[attach]30788[/attach]
[attach]30789[/attach]

[attach]30790[/attach]
[attach]30791[/attach]


步骤三:在SQL编辑视图中,组合两个查询的语句,完成联合查询

[attach]30792[/attach]

实例样本(内含本文Word版):[attach]30793[/attach]  

  本文是本人对联合查询使用的一点点心得,文中如有错漏之处,希望大家批评斧正。
  因为本文只为让大家对联合查询有个初步而直观了解,所以没有做深入的探究,大家可以参看其它有关资料和书籍。
  在以后的发帖中我也会结合个别实例,进一步就联合查询在数据库的中使用做些讲解,也欢迎大家与我交流。
                                        江羽 2008.6.29

作者: tmtony    时间: 2008-6-29 11:42
好实例, 对新手是个很好的教程
作者: ui    时间: 2008-6-29 17:29
很精彩,不是联合查询有时比较慢,数据多时
作者: huangqinyong    时间: 2008-6-29 19:49
不错,操作教程非常详细。[:17] [:11]
作者: fswxs    时间: 2008-6-29 20:19
我一直用这种方法偷懒[:50]
作者: tanhong    时间: 2008-7-2 09:19
原帖由 ui 于 2008-6-29 17:29 发表
很精彩,不是联合查询有时比较慢,数据多时


如果不考虑重复的问题,你可以在关键字后面加上 ALL ,会相对快一些.
作者: goto2008    时间: 2008-7-9 11:25
[:27] 学习
作者: linag516    时间: 2008-7-10 13:10
[:50] [:50]
作者: huangxiuwen    时间: 2008-7-10 13:48
[:50] [:50]
作者: lessonleung    时间: 2008-7-11 10:47
我是新手,學習到不少了。。。
作者: xuwenning    时间: 2008-7-14 09:06
[:28]
好好学习,天天向上
作者: 蓝天8390    时间: 2008-7-14 10:02
好教材,值得学习
作者: 13555609005    时间: 2008-7-15 13:23
学习吓
作者: liaoliao    时间: 2008-7-18 07:00
到江斑这儿来学
作者: liaoliao    时间: 2008-7-18 07:07
俺是Accsee的初学者, fgffgf所编的<学习ACCESS一周年代表作“通讯录”>树结构中,点右键时,弹出的"增加目录......."窗口是怎么生成的?看了半天没看明白, 请指点一下.谢谢.
作者: dudu246    时间: 2008-12-2 13:09
来学习了。
作者: aone    时间: 2008-12-6 15:27
简单易学的好方法!
作者: yu_mzh    时间: 2008-12-6 16:16
标题: 回复 1# 的帖子
我是新手,學習到不少了。。。
作者: nxjswt    时间: 2008-12-6 20:22
学习![:26]
作者: 傲骨一根    时间: 2009-3-23 17:00
谢谢,正在发愁呢.
作者: yanwei82123300    时间: 2009-4-25 09:30
好实例, 对新手是个很好的教程
作者: butcheralicia    时间: 2009-7-25 10:00
太感谢了!总算找到让我入门的教程了!
作者: heikediguo2004    时间: 2012-6-1 23:18
很好的教程,我是新手要要好好学习。。。。。。。
作者: fwx391    时间: 2012-7-19 14:58
很好的图文并茂的教程,对于刚刚学习ACCESS的我来的太及时了
作者: djl52102    时间: 2015-7-25 11:06
学习一下,谢谢分享!
作者: lingjiang    时间: 2020-8-24 10:35
我是新手,學習到不少了。。。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3