【表A】
Aid    Aname   Acode
1       aa      001
2       bb      002
3       cc      003
4       dd      004
5       ee      005
【表B】
Bid    Bname    Bcode
1       aaa      101
3       bbb      102
5       ccc      103
7       ddd      104
9       eee      105
 
----------------------------------------------------------------------------
left join:左联接
返回包括左表中的所有记录和右表中联结字段相等的记录。
 
例:
SELECT *
FROM A
LEFT JOIN B
ON A.Aid=B.Bid
结果:
Aid    Aname   Acode   Bid   Bname   Bcode
1       aa      001     1     aaa     101
2       bb      002    NULL   NULL    NULL
3       cc      003     3     bbb     102
4       dd      004    NULL   NULL    NULL
5       ee      005     5     ccc     103
 
 
----------------------------------------------------------------------------

right join:右联接
返回包括右表中的所有记录和左表中联结字段相等的记录。

 
例:
SELECT *
FROM A
Right JOIN B
ON A.Aid=B.Bid
结果:
Aid    Aname   Acode   Bid   Bname   Bcode
1       aa      001     1     aaa     101 
3       cc      003     3     bbb     102
5       ee      005     5     ccc     103
NULL    NULL    NULL    7     ddd     104
NULL    NULL    NULL    9     eee     105
 
 
----------------------------------------------------------------------------

inner join:内联接
只返回两个表中联结字段相等的行。

例:
SELECT *
FROM A
INNER JOIN B       //INNER可以不写
ON A.Aid=B.Bid
结果:
Aid    Aname   Acode   Bid   Bname   Bcode
1       aa      001     1     aaa     101 
3       cc      003     3     bbb     102
5       ee      005     5     ccc     103
 
 
----------------------------------------------------------------------------

full join:全联接
返回两个表中所有字段。

例:
SELECT *
FROM A
FULL JOIN B  
ON A.Aid=B.Bid
结果:
Aid    Aname   Acode   Bid   Bname   Bcode
1       aa      001     1     aaa     101
2       bb      002    NULL   NULL    NULL
3       cc      003     3     bbb     102
4       dd      004    NULL   NULL    NULL
5       ee      005     5     ccc     103
NULL    NULL    NULL    7     ddd     104
NULL    NULL    NULL    9     eee     105

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

cross join:交叉联接
返回两个表的笛卡儿积。

例1:
SELECT *
FROM A
Cross JOIN B  
结果:
Aid    Aname   Acode   Bid   Bname   Bcode
1                       1
2                       1
3                       1
4        (5*5条)       1
5                       1
1                       3
2                       3
……
……
……
例2:
SELECT *
FROM A
Cross JOIN B 
WHERE
A.Aid = B.Bid
结果:
Aid    Aname   Acode   Bid   Bname   Bcode
1       aa      001     1     aaa     101 
3       cc      003     3     bbb     102
5       ee      005     5     ccc     103
 
与inner join 结果一样,实际上是先返回所有结果(25条),再从中查询符合WHERE的结果。
 

最新文章

  1. UIScrollView的封装
  2. 50多条mysql数据库优化建议
  3. 黄聪:WordPress 多站点建站教程(六):使用WP_Query、switch_to_blog函数实现获取子站点分类中的文章
  4. 杀死future处理的阻塞线程
  5. 关于自定义的NavigationBar
  6. VoHelper
  7. C#垃圾回收机制
  8. java应用CPU占用率过高问题的分析
  9. Swiftly语言学习1
  10. 转Delphi中Memo显示行号列号
  11. 购物车(Shopping cart) —— B2C网站核心产品设计 (二)
  12. Powershell-获取命令和帮助
  13. FWT快速沃尔什变换学习笔记
  14. Java中级开发工程师知识点归纳
  15. MFC笔记8
  16. RC1015 cannot open include file 'atlres.h'
  17. Error updating database:线程异常
  18. 1-log4j2入门
  19. 【nodejs】理想论坛帖子下载爬虫1.07 使用request模块后稳定多了
  20. Windows Storage Stack

热门文章

  1. C#跨线程访问(一) ---- SynchronizationContext
  2. 16_TLB与流水线
  3. 机器学习Explainability vs Interpretability
  4. Python内置的一个用于命令项选项与参数解析的模块argparse
  5. NX二次开发-UFUN获取相邻面UF_MODL_ask_adjac_faces
  6. string反向找位置,分割字符串(只取文件夹路径)
  7. Mysql 触发器写法
  8. AtCoder ARC061E Snuke's Subway Trip 最短路
  9. Python-爬虫-requests库用语post登录
  10. VS2010-MFC(Ribbon界面开发:为Ribbon Bar添加控件)