sql左连接 右连接 内连接 外连接都是什么

如题所述

内外连接:
内连接:取的两个表的(有能连接的字段),的交集,即字段相同的。利用内连接可获取两表的公共部分的记录,
select * from A,B where A.Aid=B.Bnameid
与 Select * from A JOIN B ON A.Aid=B.Bnameid的运行结果是一样的。
外连接:左右连接。
外连接分为两种,一种是左连接(Left JOIN)和右连接(Right JOIN)
(1)左连接(Left JOIN):即图3公共部分记录集C+表A记录集A1。语句如下: select * from A Left JOIN B ON A.Aid=B.Bnameid A的字段全有,查询出来在结果集的左边。
(2)右连接(Right JOIN):即图3公共部分记录集C+表B记录集B1。语句如下:select * from A Right JOIN B ON A.Aid=B.Bnameid

左右连接的sql语句实例:(+),中间函数NVL给空值赋值。
sql="select name,id,area_name from (select a.name,a.id,NVL(c.area_name,'未分配') area_name "+
"from department a, area_department b,area_table c "+
"where a.id= b.f_branch_id(+) "+
"and b.area_code= c.area_code(+)) d where 1=1 ";
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-07
如果你数学的集合思想可以的话,就很简单了,集合(余集、补集、全集)
Inner join 匹配有关联的 (两集合的-----余集)
Left join 匹配与左表有关联的 (两集合的-----补集)
Right join 匹配与右表有关联的 (两集合的-----补集)
Full join 两表的所有字段 (两集合的-----全集)

个人认为:左、右连接 就是 select * from A表 left jion B表 where 。。。。 其中A表就是 左表
第2个回答  推荐于2016-08-13
多表查询:包括内联接和外联接(例子是我以前写的)
内联接:inner join
select c.cusname,l.lkmname
from
cusinfo c inner join cuslinkman l
on c.cusno=l.cusno
外联接:(左,右)left outer join,right outer join(outer可省略)
select cusName,lkmname
from cuslinkman l right outer join cusinfo c
on c.cusNo=l.cusNo

select c.cusno,c.cusname,a.atvdate,a.atvtitle
from cusinfo c left outer join cusactivity a
onc.cusno=a.cusno本回答被网友采纳
相似回答