博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

sislcb

寻找自己
sislcb.cublog.cn
左右连接备忘
   最近没怎么搞sql了,刚好今天碰到了这个问题,于是把以前的知识复习了一遍,不要太久忘记了。
 
   CROSS JOIN(创建笛卡尔积) 
   对两张表通过交叉联合产生第三张返回结果集的表。相当于普通的连接。
就是加入一张表有3条纪录,另一张表有4条纪录,则执行这个会产生3x4=12条数据了.
 
其他的连接看下面的表格:
主表:
MasterID Note
1 M_Rec_1
2 M_Rec_2
3 M_Rec_3
从表:
SuBID MasterNo Note
1 1 S_Rec_1
2 1 S_Rec_2
3 1 S_Rec_3
4 2 S_Rec_4
5 4 S_Rec_5
6 4 S_Rec_6
 
以MasterNo做为关联
产生结果如下:
  • INNER JOIN
    M_Rec_1,S_Rec_1
    M_Rec_1,S_Rec_2
    M_Rec_1,S_Rec_3
    M_Rec_2,S_Rec_4

  • LEFT JOIN
    M_Rec_1,S_Rec_1
    M_Rec_1,S_Rec_2
    M_Rec_1,S_Rec_3
    M_Rec_2,S_Rec_4
    M_Rec_3,Null

  • RIGHT JOIN
    M_Rec_1,S_Rec_1
    M_Rec_1,S_Rec_2
    M_Rec_1,S_Rec_3
    M_Rec_2,S_Rec_4
    Null,S_Rec_5
    Null,S_Rec_6

很好理解吧

INNER JOIN 就是两个表都有匹配才显示出来.
LEFT JOIN  左边固定全部出来,右边根据匹配出来
RIGHT JOIN 右边固定全部出来,左边根据匹配出来

发表于: 2007-08-15,修改于: 2007-08-15 14:45,已浏览601次,有评论0条 推荐 投诉

给我留言
版权所有 ChinaUnix.net 页面生成时间:6.99267