最近没怎么搞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 右边固定全部出来,左边根据匹配出来
|
|