学到老,活到老~

数据库-左连接、右连接、全连接、内连接、交叉连接、自连接

上一篇 / 下一篇  2015-08-11 17:21:35 / 个人分类:数据库

补充:
笛卡尔乘积:假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}

左右连接其实就是以哪个表为主(或者说为准),结果集为主表的全部记录+“副表主表相匹配的记录,如果副表中没有和主表相匹配的记录,则相对应的记录显示为NULL

左连接:左边表全部行+右边表相匹配的行,如果左边表中的某一行,在右边表中没有匹配的行,则显示NULLleft join或者left outer join

右连接:和左连接相反。(right join或者right outer join

内连接:它返回字段ID(连接条件)同时存在于两个表中的记录,也就是说,仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行,内联接消除与另一个表中的任何行不匹配的行。(inner join或者join

全连接:不管匹配不匹配,全部都显示出来。(full join或者full outer join

交叉连接:没有WHERE子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。(cross join不带where

自连接:给自己取个别名,一个表当两个表来使用。

-------------------------------------

例子:

Table mmSELECT * FROM mm;

bid  bdate

1     n1

2     n2

3     n3

Talbe nnSELECT * FROM nn;

bid  bdate

1     n1

2     n2

4     n4

内连接:

SELECT * FROM mm INNER JOIN nnONmm.`aid` = nn.`bid` --onwhere也可

执行结果:

aid  adate     bid  bdate

1     m1  1     n1

2     m2  2     n2

左连接:

SELECT * FROM mm LEFT JOIN nn ON mm.`aid` = nn.`bid`

执行结果:

aid  adate     bid  bdate

1     m1  1     n1

2     m2  2     n2

3     m3  \N   \N

右连接:

SELECT * FROM mm RIGHT JOIN nn ON mm.`aid` = nn.`bid`

执行结果:

aid  adate     bid  bdate

1     m1  1     n1

2     m2  2     n2

\N   \N   4     n4

全连接:不管匹配不匹配,全部显示出来

SELECT * FROM mm FULL JOIN nn

执行结果:

aid  adate     bid  bdate

1     m1  1     n1

2     m2  1     n1

3     m3  1     n1

1     m1  2     n2

2     m2  2     n2

3     m3  2     n2

1     m1  4     n4

2     m2  4     n4

3     m3  4     n4

交叉连接:如果没有on子句,就是全连接(笛卡尔积),与全连接的不同就是全连接不能够有on之类的子句

SELECT * FROM mm CROSS JOIN nn ON mm.`aid` = nn.`bid`

执行结果:

aid  adate     bid  bdate

1     m1  1     n1

2     m2  2     n2

SELECT * FROM mm CROSS JOIN nn

aid  adate     bid  bdate

1     m1  1     n1

2     m2  1     n1

3     m3  1     n1

1     m1  2     n2

2     m2  2     n2

3     m3  2     n2

1     m1  4     n4

2     m2  4     n4

3     m3  4     n4


TAG: 数据库 左连接

 

评分:0

我来说两句

日历

« 2024-04-17  
 123456
78910111213
14151617181920
21222324252627
282930    

我的存档

数据统计

  • 访问量: 4582
  • 日志数: 7
  • 建立时间: 2015-08-04
  • 更新时间: 2015-08-11

RSS订阅

Open Toolbar