
连接分内连接,外连接,交叉连接,等值连接和自连接。内连接是在公共的列上使用比较 *** 作符从多表中抽取数据。(某一公共属性如EmployeeID,它是A表的主键和B表的外键)1左连接返回left outer join 关键字左侧指定的表的所以行和右侧指定的表的匹配的行。2右连接返回right outer join 关键字右侧指定的表的所以行和左侧指定的表的匹配的行。3完全外连接返回来自两个表的所以匹配和非匹配行使用full outer join 关键字。交叉连接就是笛卡尔积,A表有5行,B表有10行,使用交叉连接就有50行。等值连接是内连接的一种特殊形式,它是要选择所有表的所以属性列。自连接就是一个表和自己连接。为区分同一个表的两个实例,表被给出两个别名。
2)左连接
select a ,b from a left join b on aid=bparent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
3 王武 null null null
3) 右连接
select a ,b from a right join b on aid=bparent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
null null 3 34 4
内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。
外连接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。
左外连接:左边表数据行全部保留,右边表保留符合连接条件的行。
右外连接:右边表数据行全部保留,左边表保留符合连接条件的行。
全外连接:左外连接 union 右外连接。
示例:
数据库版本:Oracle
表TESTA,TESTB,TESTC,各有A, B两列。
A.内连接
内连接,即最常见的等值连接,例:
SELECTFROM TESTA,TESTB
WHERE TESTAA=TESTBA
结果:
B外连接
外连接分为左外连接,右外连接和全外连接。
1. 左外连接 left outer join 或者 left join
左外连接就是在等值连接的基础上加上主表中的未匹配数据,例:
SELECTFROM TESTA
LEFT OUTER JOIN TESTB
ON TESTAA=TESTBA
结果:
三个表做左外链接:
SELECTFROM TESTA
LEFT OUTER JOIN TESTB
ON TESTAA=TESTBA
LEFT OUTER JOIN TESTC
ON TESTAA=TESTCA
结果:
2. 右外连接 right outer join 或者 right join
右外连接是在等值连接的基础上加上被连接表的不匹配数据
SELECTFROM TESTA
RIGHT OUTER JOIN TESTB
ON TESTAA=TESTBA
3全外连接 full outer join 或者 full join
全外连接是在等值连接的基础上将左表和右表的未匹配数据都加上。
SELECTFROM TESTA
FULL OUTER JOIN TESTB
ON TESTAA=TESTBA
结果:
以上就是关于请问在数据库中什么时候用左连接什么时候用右连接全部的内容,包括:请问在数据库中什么时候用左连接什么时候用右连接、sql 多表查询 内连接左连接右连接、数据库的内连接和外连接有什么区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)