本文摘自PHP中文网,作者coldplay.xixi,侵删。

- 连接关系是关系数据库模型的主要特点。也是最主要的查询,主要包括内连接、外连接等。
- 通过连接运算符可以实现多个表查询。
- 在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当查询数据时,通过连接操作查询出存放在多个表中不同实体的信息。当两个或多个表中存在相同意义的字段时,便可以通过这些字段对不同的表进行连接查询。
下面介绍多表之间的三种连接方式:
(1)内连接查询
(2)外连接查询
(3)复合条件连接查询
(免费学习推荐:mysql视频教程)
(1)、内连接查询(inner join)
- 内连接使用比较运算符进行表间某(某些)列数据的比较操作,并列出这些表中与连接条件向匹配的数据行,组成新纪录,也就是说,在内连接查询中,只有满足条件的记录才能出现在结果关系中。
下面创建数据表suppliers进行演示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
【例1】在fruits表和suppliers表之间使用内连接查询。
1 |
|
可以看到fruits和suppliers表中都有相同数据类型的字段s_id,两个表通过s_id字段建立联系。
接下来从fruits表中查询f_name、f_price字段,从suppliers表中查询s_id、s_name,SQL语句如下:
1 |
|
- 注意:因为fruits表和suppliers表中有相同的字段s_id,因此在比较的时候,需要完全限定表名,格式为"表名.列名",如果只给出s_id,MySQL将不知道指的是哪一个,并返回错误信息。
【例2】在fruits表和suppliers表之间,使用inner join语法进行内连接查询,SQL语句如下:
1 |
|
- 使用where子句定义连接条件比较简单明了,而inner join语法是ANSI SQL 的标准规范,使用inner join连接语法能够确保不会忘记连接条件,而且,where子句在某些时候回影响查询的性能。
如果在一个连接查询中涉及的两个表都是同一个表,name这种查询称为自连接查询。自连接是一种特殊的内连接,是指相互连接的表在物理上为同一张表,但可以在逻辑上分为两张表。
相关阅读 >>
更多相关阅读请进入《mysql》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。