内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。
外连接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。
1、内连接
内连接,即最常见的等值连接,例:
SELECT * FROM TESTA,TESTBWHERE TESTA.A=TESTB.A
结果:
2、外连接
外连接分为左外连接,右外连接和全外连接。
左外连接 left outer join 或者 left join
左外连接就是在等值连接的基础上加上主表中的未匹配数据,例:
SELECT *FROM TESTA LEFT OUTER JOIN TESTB ON TESTA.A=TESTB.A
结果:
扩展资料:
全外连接 full outer join 或者 full join
全外连接是在等值连接的基础上将左表和右表的未匹配数据都加上。
SELECT * FROM TESTA FULL OUTER JOIN TESTBON TESTA.A=TESTB.A
什么是内连接,外连接,左连接,右连接?
1.内连接:取的两个表的(有能连接的字段)的交集,即字段相同的。
利用内连接可获取两表的公共部分的记录, select * from A,B where A.Aid=B.Bnameid 与 Select * from A JOIN B ON A.Aid=B.Bnameid的运行结果是一样的。 2.外连接:左右连接。 外连接分为两种,一种是左连接(Left JOIN)和右连接(Right JOIN)
(1)左连接(Left JOIN):语句如下:
select * from A Left JOIN B ON A.Aid=B.Bnameid A的字段全有,查询出来在结果集的左边。
(2)右连接(Right JOIN):语句如下:
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 ";