本文着重就联合查询的实际运用,结合实例分步进行解析,让大家对于联合查询本身,及联合查询的实际运用,有一个初步直观而感性认识。
联合查询在数据库中运用是较广泛的,较为典型有:物品管理类、财务管理类等。
就拿物品管理来说,假设进、销、存是分表进行设计的,数据分别存放在各独立基表中,当我们要获得物品的分类明细账数据时,就必须通过联合查询将进、销、存三个基表的数据组合成为一个查询。
根据本人在实际的运用中的经验总结归纳,我将联合查询大致分为三大类:兼容并收类、无中生有类、移花接木类。
一、联合查询之兼容并收
这是联合查询最为常见,也最基本的类型。这类联合查询是将一个以上表或查询结果,进行重组而获得新查询结果。
要求用于构建联合查询的表或查询必须符合字段数必须相同,字段类型必须相容的两个基本条件和要求。
在罗斯文数据库实例中:“各城市的客户和供应商”查询,就是这类查询典型实例(见下图)
该实例的创建过程,大家可参看上文《查询设计器设计联合查询》,本文不做讲解。
二、联合查询之无中生有
这是联合查询又一种类型,是联合查询进阶的必经阶段。这类联合查询是将单笔或N笔自定义数据与表或查询组合而构成的查询。直白的说,就是将自定义数据与现成的表或查询数据组合而构成查询。
案例:如通过联合查询为组合框数据源,添加一笔自定义“全部”作为默认第一笔数据,用于查询时返回所有数据。(见下图)通过联合查询方式实现目的,要比我们在数据表中插入一笔“全部”数据要安全的多,因为这不会影响到原数据的完整性。
实例操作步骤:
1、通过查询设计器获得资产编号数据查询,实例名(组合框数据源一)
2、通过查询设计器自定义数据查询,实例名(组合框数据源二)
3、通过查询SQL设计器将前面两个查询组合成联合查询,实例名(组合框数据结果)
三、联合查询之移花接木:
这是联合查询中相对复杂的类型。这类联合查询是前两类联合查询方式的综合类型,并在此基础上重新演生而构成全新的查询结果。大家可以实践摸索。
案例:该实例数据中,某个交易日中,认购与认沽数据成对,但有时认沽没有数据,使认购与认沽数据没有两两相对,不便于对照。为此我们通过巧接的方式补齐认沽数据,数据值为 “0” 。
实例操作步骤:
1、按图先建立个第一个联合查询数据源:实例名(分组查询一)
2、按图先建立个第二个联合查询数据源:实例名(分组查询二)
3、按图将前第二个查询组合构成联合查询:实例名(分组查询三)
查看联合查询结果,发现有些资编号,如:资产编号为1就出现两笔认沽数据,这是因为有的资产编号之前有数据存在,加上我们自定义的数据,因此出现认沽数据重复的情况出象。(见下图)
4、按图整理联合查询结果,实例名(分组查询结果)
以上是本人在ACCESS使用中,对联合查询的一点点经验的总结归纳,写本文的目的,一是为便于自己总结提高,二是与初学者共同分享。由于本人认知有限且笔拙,不免有错漏这处,希望各位高人斧正。
作者:江羽(Office中国)