(1) 内连接
关键字:inner join on
select * from a_table inner join b_table on a_table.a_id = b_table.b_id;
/*
执行结果如下:
| a_id | a_name  | a_part | b_id | b_name | b_part |
| ————  ————————  ———————— ——————  ———————  ———————|
|    2   |  李四   | 政治部 |  2  |  李四  | 政治部 |
|  3     |  王五   | 装备部  |  3     |  王五  | 装备部 |
*/
Note:组合两个表中的记录,返回关联字段相符的记录,也就是返回两个表的交集部分
(2) 左连接(左外连接)
关键字:left join on / left outer join on
select * from a_table left join b_table on a_table.a_id = b_table.b_id;
/*
执行结果如下:
| a_id | a_name  | a_part | b_id | b_name | b_part |
| ————  ————————  ———————— ——————  ———————  ———————|
|    2   |  李四   | 政治部 |  2  |  李四  | 政治部 |
|  3     |  王五   | 装备部  |  3     |  王五  | 装备部 |
|  1     |  张三   | 司令部 | NULL |  NULL  |  NULL  |
|  4     |  赵六   | 后勤部 | NULL |  NULL  |  NULL  |
*/
Note:left join 是left outer join的简写,全称左外连接,是外连接的一种左(外)连接,
左表(a_table)的记录将会全部表示出来,而右表(b_table)只会显示符合搜索条件的记录,右表记录不足的地方均为NULL。
(3) 右连接(右外连接)
关键字: right join on / right outer join on
select * from a_table right outer join b_table on a_table.a_id = b_table.b_id;
/*
执行结果如下:
| a_id   | a_name   | a_part |  b_id |  b_name | b_part |
| ————   |  ——————  | —————— |  ———— |  ———————   ——————|
|  2     |  李四    | 政治部  |  2     |  李四  | 政治部 |
|  3     |  王五  | 装备部  |  3   |  王五  | 装备部 |
| NULL   |  NULL    | NULL   |  5    |  刘七  | 国防部 |
| NULL   |  NULL    |  NULL  |  6    |  杨八  | 审计部 |
*/
Note:right join是right outer join的简写,它的全称是右外连接,是外连接中的一种。
与左(外)连接相反,右(外)连接,左表(a_table)只会显示符合搜索条件的记录,而右表(b_table)的记录将会全部表示出来。左表记录不足的地方均为NULL。
(4) 全(外)连接
关键字: FULL OUTER JOIN
SELECT
    O.ID,
    O.ORDER_NUMBER,
    O.CUSTOMER_ID,
    C.ID,
    C.NAME 
FROM
    ORDERS O
    FULL OUTER JOIN CUSTOMERS C ON C.ID = O.CUSTOMER_ID;
注意:MySQL是不支持全外的连接的,这里给出的写法适合Oracle和DB2。但是可以通过左外和右外求合集来获取全外连接的查询结果。

最新文章

  1. linux(十三)__vsftpd服务器
  2. QtAlgorithms
  3. sql update多表联合更新
  4. JS实现电子时钟
  5. 浅谈HTTP响应拆分攻击
  6. Codeforces 429B Working out
  7. 基于注解的Spring MVC
  8. 使用rowid和rownum获取记录时要注意的问题
  9. SQL Server跨网段(跨机房)FTP复制
  10. Arch下载官方镜像列表Official mirrors
  11. Spring 工作原理
  12. 多台linux主机之间建立免密通信
  13. [二十一]JavaIO之BufferedReader 与 BufferedWriter
  14. css不受高度限制实现文本超出隐藏并以省略号结束
  15. jdk8新特性表达式1
  16. cocos2d-x绑lua的开发环境
  17. sqlserver 表中记录生成insert,可以加条件,可以生成建表语句
  18. Hive 1.2.1&Spark&Sqoop安装指南
  19. Storm原理及安装
  20. 深入new/delete:Operator new的全局重载

热门文章

  1. JS中的call,apply和bind及记忆方式
  2. 使用NodeJS模块-NodeJS官方提供的核心模块
  3. linux下unzip解压报错“symlink error: File name too long”怎么办?提供解决方案。
  4. kotlinx.android.synthetic.** 坑点
  5. Saltstack_使用指南15_多master
  6. pymysql增删改查操作
  7. linux 命令cp -a的用法
  8. Python—实现钉钉后台开发
  9. PyCharm关闭按两次Shift进入搜索框的功能
  10. Linux部署NFS服务共享文件