ITPub博客

首页 > 数据库 > Oracle > 8.join连接

8.join连接

原创 Oracle 作者:zuiai510416 时间:2014-02-11 19:53:12 0 删除 编辑
/*
8.Join
outer join 外连接
left,right,full
*/
Select * From t;
Select * From tt;
Insert Into TT Select * From T Where Id <= 2;
Insert Into TT Values(4,'d',Sysdate);


Select t.*,tt.BIRTH TTBIR From t,tt where t.Id=tt.Id And t.Name=tt.Name;
Select T.*,TT.BIRTH From T Left Outer Join TT On T.Id=TT.Id And T.Name=TT.Name;  --左外连接,T为基表,TT可以匹配不上为空
Select T.*,TT.BIRTH From T,TT where T.Id=TT.Id(+) And T.Name=TT.Name(+);  --左外连接,T为基表,TT可以匹配不上为空
Select T.*,TT.BIRTH From T Right Outer Join TT On T.Id=TT.Id And T.Name=TT.Name;  --右外连接,T为基表,TT可以匹配不上为空
Select T.*,TT.BIRTH From T,TT where T.Id(+)=TT.Id And T.Name(+)=TT.Name;  --左外连接,T为基表,TT可以匹配不上为空
Select T.*,TT.BIRTH From T Full Outer Join TT On T.Id=TT.Id And T.Name=TT.Name;  --全外连接
--表的别名
Select a.*,b.BIRTH From T a Full Outer Join TT b On a.Id=b.Id And a.Name=b.Name;  --全外连接


--****注意 连接和笛卡尔乘基的区别
Select T.*,TT.BIRTH From T,TT --5*5 = 25条结果


--natural join 自然连接 取2表名字相同的字段
Select Id,Name,b.birth From t a Natural Join tt b


--USING关键字
Select Id,a.Name,b.birth From t a Inner Join tt b Using(Id);    --相当于on t.id=tt.id


--multiple joins 多表连接,按照顺序2个表连接后,再和第三个表连接


--unequal joins不等连接
Select T.*,TT.BIRTH From T Join TT On T.Id

--self join自连接 如员工表,求领导是谁

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15810196/viewspace-1079753/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 7.聚合函数
下一篇: 9.子查询
请登录后发表评论 登录
全部评论

注册时间:2011-07-19

  • 博文量
    53
  • 访问量
    131708