2024年3月20日发(作者:)

表连接(内联、外联、自联)

5.6连接查询

连接分为:内连接,外连接,全连接, 自连接

最简单的连接查询用 逗号 完成

内连接:

等值连接:连接条件中使用 “=”

不等值连接:连接条件中使用“>”,“<”,“ >=”,“ <=”,“!=”,“ < >”,

“BETWEEN AND”,“IN”

(INNER) JOIN ON * = *

„„„„AND P. ROWID < PR . ROWID类似的语句可用于去除重复的记录„„„„

外连接

左外链接:

用(+)来实现, 这个加号可以这样来理解:+ 表示补充,即哪个表有加号,这个表就是

匹配表。所以加号写在右表,左表就是全部显示,故是左连接。

右外连接:右表全部显示

全连接:除连接外的数据左右表都全部显示

SELECT FROM A LEFT JOIN B ON A . =B . ;

SELECT FROM A RIGHT JOIN B ON A . =B . ;

SELECT FROM A FULL JOIN B ON A . =B . ;

用(+)来实现时 只能用在WHERE子句中,如果外连接有多个条件,那么每个条件都需

要使用该操作符

内外全连接的区别:

内连接取交集

外连接(左连接,右连接,全连接)

左连接左边的全取

右连接右边的全取

具体区别如下:

(一)内连接

内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连

接列的

列值。内连接分三种:

1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其

查询结

果中列出被连接表中的所有列,包括其中的重复列。

2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被

连接的

列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。

3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它

使用选

择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。

例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和

出版

社:

SELECT *

FROM authors AS a INNER JOIN publishers AS p

ON =

又如使用自然连接,在选择列表中删除authors 和publishers 表中重复列

(city和

state):

SELECT a.*,_id,_name,y

FROM authors AS a INNER JOIN publishers AS p

ON =

等值连接显示所有值,有重复列;

自然连接显示指定列值,可去除重复列。

(二)外连接

内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或

HAVING

条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含

符合连

接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全

外连

接)中的所有数据行。如下面使用左外连接将论坛内容和作者信息连接起来:

SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b

ON me=me

A表信息全显示出来,B表匹配A表。

下面使用全外连接将city表中的所有作者以及user表中的所有作者,以及

他们所在

的城市:

SELECT a.*,b.*

FROM city as a FULL OUTER JOIN user as b

ON me=me

A表和B表信息都全显示出来,能匹配的相互匹配,不能匹配的各自显示出来。

(三)交叉连接

交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔

积,返回到