首页 理论教育MySQL数据库设计与实现:连接查询和自连接示例

MySQL数据库设计与实现:连接查询和自连接示例

【摘要】:图5.2交叉连接的例子2.内连接内连接将返回与连接条件相匹配的数据行。图5.3表employee和department使用内连接查询两个表中的数据,如图5.4所示。图5.6使用右外连接的例子4.自连接自连接就是将表与它自身相关联,进行自连接时通过给表起不同的别名来区分一个表的两个实例。

所谓连接是指将两个或多个表中的数据组合成单个结果集的一种方法。在MySQL中包括交叉连接、内连接、外连接和自连接共4种连接,下面将分别介绍这些连接。

1.交叉连接

交叉连接返回连接表中所有数据行的笛卡尔积,结果集中的数据行数等于第一个表中的数据行数乘以第二个表中的数据行数。

下面有两个数据表course和scores,如图5.1所示。

图5.1 表course和scores

使用交叉连接查询两个表中的数据,如图5.2所示。

图5.2 交叉连接的例子

2.内连接

内连接将返回与连接条件相匹配的数据行。在内连接的SQL语句中使用INNER JOIN语句,其中INNER可以省略。

下面有两个数据表employee和department,如图5.3所示。

图5.3 表employee和department

使用内连接查询两个表中的数据,如图5.4所示。

(www.chuimin.cn)

图5.4 使用内连接的例子

3.外连接

在使用内连接时,返回与连接条件匹配的数据行,而外连接和内连接不同,外连接不仅返回与连接条件匹配的数据行,还包括左表、右表或者左右表的所有数据。外连接分为左外连接和右外连接。

使用employee和department做左外连接(left join)查询,将左表的数据全部显示。如图5.5所示。

图5.5 使用左外连接的例子

右外连接(right join)查询,将右表的数据全部显示,如图5.6所示。

图5.6 使用右外连接的例子

4.自连接

自连接就是将表与它自身相关联,进行自连接时通过给表起不同的别名来区分一个表的两个实例。

使用department表做自连接查询表中的数据,如图5.7所示。

图5.7 使用自连接的例子