- 贴心猫(Imcat)
- 贴心代码
- 详情
sql-内外连接join
发布:2011-11-29 17:10
点击410次
评论:0条
什么时候用outer join和inner join
http://zhidao.baidu.com/question/309625720.html
我们这样来看哈:有两个表,一个是源表,称为A表;一个是目标表,称为B表。一般来说,比较完美的组合就是,A表中的每一条记录,在B表中都有能与之匹配的一行。比如说,A表是学生的基本信息表(假设学生的人数为10人),包含学生的姓名,学号。B表是学生的成绩表,包含学生的学号,成绩。这两个表共享学号这一列,也是因为学号这一列才使得这两个表有了联系。那现在,写SQL语句如下:
SELECT A.name "姓名",A.number "学号",B.sccot "成绩" FROM A INNER JOIN B ON(A.number=B.number);你将得到10行信息。也就是说全部都返回了。这个时候,你用LEFT OUTER JOIN来替换得到的结果是一样的。
但是,如果A表中有一行在B表中没有与之匹配的行的话(称这样的行 为W),你用INNER JOIN 来连接的话,第W行,是不会显示在返回结果中的。但是,这个时候,你用LEFT OUTER JOIN的话,W这一被孤立的行,将会显示在返回结果中。
不知道,这样说,你明白没有。
总之哈,就是说,当两表用内连接来查询的时候,将会有你需要的孤立行不能被显示在返回结果中时,你就应该用OUTER JOIN 啦。前面也说了,OUTER JOIN 分为三种,分别是 LEFT OUTER JOIN (左表中被孤立的行,会被显示在结果中) , RIGHT OUTER JOIN(右表中被孤立的行,会被显示在结果中). FULL OUTER JOIN. (两表中被孤立的行,都会被显示在结果中)
如果还不明白,欢迎追问。呵呵……加油!