中关村在线

软件

详解SQL四种连接方式

在Access中实现表连接时,可通过查询设计视图或SQL语句完成。常用连接方式包括内连接(inner join)、左连接(left join)、右连接(right join)和交叉连接(cross join)。本文以Persons和Orders两张表为例,展示各类连接操作的具体应用方法,两表结构与数据内容详见附图。

1、 SQL JOIN 用于依据表间列的关联,从多个数据表中提取信息。在 SQL 中,JOIN 与 inner join 具有相同含义,其查询结果完全一致,均返回两表中满足匹配条件的交集数据。

2、 例如,要获取每个人的订单详情,可通过SQL的JOIN操作实现数据关联查询。

3、 通过逗号连接两张表,并在WHERE子句中设定关联条件。

4、 观察Orders表数据可知,Id_p为2的用户未订购任何产品,因此在查询结果中不会显示该用户的记录。

5、 SQL中的inner join与join在效果上完全相同,两者均可用于实现表的内连接操作。

6、 通过关键字inner join连接两个表,并使用ON子句指定它们之间的关联条件。

7、 所示,经观察可知,使用inner join与join产生的结果完全相同。

8、 SQL中的Left Join与left outer join含义相同,均表示左连接。当执行该操作时,无论右表是否存在匹配记录,都会完整返回左表的所有数据行。

9、 所示,观察可知:尽管左表中Persons.Id_p为2的记录在右表orders中无对应信息,查询结果仍保留了该条数据,仅将orderno字段显示为空值。

10、 SQL中的Right Join与Right Outer Join是同一概念,无论左表是否存在匹配记录,都会返回右表的全部数据行。

11、 所示,尽管右表Orders中id_o为5的记录无法与persons表中的数据匹配,但该行信息依然在查询结果中被完整显示出来。

12、 在Access中,无法直接使用full join和cross join关键字来实现笛卡尔积。由于系统不支持这两个连接类型,若要展示所有记录的组合结果,可通过使用JOIN但省略连接条件的方式达成目的。这种方式会返回两个表中每条记录相互配对的结果集,即等效于笛卡尔积的输出效果。

13、 Microsoft官方文档指出,交叉联接会生成两个表的笛卡尔积。

14、 在Access中实现交叉连接的SQL语句如下所示:

展开全文
人赞过该文
内容纠错

相关电商优惠

评论

更多评论
还没有人评论~ 快来抢沙发吧~

读过此文的还读过

点击加载更多

内容相关产品

说点什么吧~ 0

发评论,赚金豆

收藏 0 分享
首页查报价问答论坛下载手机笔记本游戏硬件数码影音家用电器办公打印 更多

更多频道

频道导航
辅助工具