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 子句,它返回被连接的两个表所有数据行的笛卡尔
积,返回到


发布评论