`
零点5度
  • 浏览: 19287 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

SQL的联接方式

    博客分类:
  • java
 
阅读更多

1、内联接——INNER JOIN

在结果集中只有满足匹配条件的行。


2、外联接

1)左外联接 ——LEFT JOIN或LEFT OUTER JOIN
结果集包括 LEFTJOIN 子句中指定的左表的所有行,如果左表的某行在右表中没有匹配,则该行在结果集中没有右表的值。

2)右外联接——RIGHT JOIN 或 RIGHT OUTER JOIN
结果集包括 RIGHTJOIN 子句中指定的右表的所有行,如果右表的某行在左表中没有匹配,则该行在结果集中没有左表的值。
3)全联接——FULL JOIN 或 FULL OUTER JOIN
结果集包括左表和右表中的所有行,当一个表中的某行在另一个表中没有匹配时,则该行在结果集中没有另一表的值。

3、交叉联接 ——CROSS JOIN

交叉连接不带WHERE子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。



例子:(http://www.blogjava.net/zolly/archive/2007/10/23/SQLJION.html

-------------------------------------------------
a表 id name b表 id job parent_id
1 张3 1 23 1
2 李四 2 34 2
3 王武 3 34 4
a.id同parent_id 存在关系

--------------------------------------------------
1) 内连接
select a.*,b.* from a inner join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2

2)左连接
select a.*,b.* from a left join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
3 王武 null

 

3)右连接
select a.*,b.* from a right join b on a.id=b.parent_id
结果是
1 张3 1 23 1
2 李四 2 34 2
null 3 34 4

4)完全连接
select a.*,b.* from a full join b on a.id=b.parent_id

结果是
1 张3 1 23 1
2 李四 2 34 2
null    3 34 4
3 王武 null

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics