在数据库中,用的最多的连接操作分为三种:左外连接、右外连接和全外连接。这里只总结其基本用法。
1、左外连接
对应的SQL语句:left (outer)join,outer可以省略。
表示的含义:例如:A、B两张表,A表为基础表,B表为补充表,则:
select * from A left join B on A.id = B.id(理解为A加到B的左边)。
用 + 来表示:select * from A , B where A.id = B.id(+) [+在哪边,哪边就是补充表,即A为基础表,B为补充表,A表的数据全部显示,B表的数据只有与A表相匹配的才显示,不匹配的均为NULL]
2、右外连接
对应的SQL语句:right(outer)join,outer可以省略。
表示的含义:select * from A right join B on A.id = B.id(理解为A加到B的右边)
用 + 表示:select * from A , B where A.id(+) = B.id [即B为基础表,A为补充表。B的数据全部显示,A的数据只显示与B匹配的,不匹配的均为NULL]
总结:
①左、右外连接中,+ 号在哪个表中,哪个表就是补充表,+ 号在左,就是右连接;+ 号在右,就是左连接。
② (+) 号的SQL语句和 left/right join语句是不同的,left/right join 可以和on连用,而 + 只能出现在where子句中。
③ (+) 号只适用于列,而不能用在表达式中。
④ (+) 号只能用于左外连接、右外连接,而不能用于实现完全外链接。
3、完全外链接
对应的SQL语句:select * from A full (outer) join B on A.id = B.id
表示的含义:左表和右表都不做限制,所有的记录都显示,两表不足的地方均为NULL,全外连接不能用 (+) 表示。
学习链接:http://www.cnblogs.com/hehaiyang/p/4745897.html