SQL学习笔记-表连接

1.内连接  [inner]  join

   通过比较被联接的表所共有的字段,把多个表联接起来

   select   列名 from  表名1  [inner]  join 表名2 on 表名1.列名 <比较运算符> 表名2.列名

 

2.左外连接 left [outer] join

   左外联接的结果表中除了满足连接条件的行,还包括左表中的所有剩余行,
  但不包括右表中的不匹配行,使用左外联接时,请注意:

   (1)不满足联接条件的记录将显示空值
   (2)左联接可以显示左表中所有记录
   (3)可以把 LEFT OUTER JOIN 简写为 LEFT JOIN

select  列名 from 表名1 left [outer] join 表名2  on 表名1.列名 <比较运算符> 表名2.列名

3.右外连接 right  [outer]  join

   右外联接结果表中除了满足连接条件的行,还包括右表中的所有剩余行,
   但不包括左表中的不匹配行,使用右外联接时,请注意:
   (1)不满足联接条件的记录将显示空值
   (2)右联接可以显示右表中所有记录
   (3)可以把 RIGHT OUTER JOIN 简写为 RIGHT JOIN

  select  列名 from 表名1  right  [outer]  join 表名2  on  表名1.列名 <比较运算符> 表名2.列名

 

4.完整外连接, full [outer] join

   即左右外连接的结合

  select 列名 from 表名1  full [outer]  join 表名2  on  表名1.列名 <比较运算符> 表名2.列名 

 

5.交叉链接,即返回笛卡尔积 cross join

select  列名 from 表名1 cross join 表名2

 

6.自连接(self-join)

 使用自联接,可以查询一个表中各记录之间的关系
 使用自联接时,应注意:
  (1)引用表的两份副本时,必须使用表的别名
  (2)生成自联接时,表中每一行都和自身比较一下,并生成重复的记录,
  (3)使用 WHERE 子句来消除这些重复记录

posted @ 2012-02-04 16:04  kumat  阅读(319)  评论(0编辑  收藏  举报