(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。但是可以通过左外和右外求合集来获取全外连接的查询结果。

7-SQL-join连接的更多相关文章

  1. 【SQL】各取所需 | SQL JOIN连接查询各种用法总结

    前面 在实际应用中,大多的查询都是需要多表连接查询的,但很多初学SQL的小伙伴总对各种JOIN有些迷糊.回想一下,初期很长一段时间,我常用的似乎也就是等值连接 WHERE 后面加等号,对各种JOIN也 ...

  2. SQL Join连接

    SQL 连接(Joins) SQL join 用于把来自两个或多个表的行结合起来. SQL JOIN SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段. 最常见的 J ...

  3. SQL join 连接时 条件加在 on后面和 where 的区别

    task 是用户任务表,manageuser是用户表,以left join 为参考: 此时主表是task,三条sql语句:注意区别.第一句无筛选条件,第二句筛选条件在on后面,第三句sql的筛选语句放 ...

  4. SQL JOIN连接分类[转]

    1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符):包括相等联接和自然联接: 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行:    2.外联接.外联接可以 ...

  5. LINQ系列:LINQ to SQL Join连接

    1. 一对多 var expr = context.Products .Where(p => p.Category.CategoryName == "LINQ to SQL" ...

  6. SQL Join(连接查询)

    1.连接查询分为: inner join(自然连接,自连接) Left join(左连接)/Left outer join(左外连接):效果一样 Right join(右连接)/Right outer ...

  7. SQL Join连接大小表在前在后的重要性(小表在前提高执行效率)

    引用地址:https://blog.csdn.net/qq_30349961/article/details/82662550 http://blog.sina.com.cn/s/blog_6ff05 ...

  8. SQL表连接查询(inner join、full join、left join、right join)

    SQL表连接查询(inner join.full join.left join.right join) 前提条件:假设有两个表,一个是学生表,一个是学生成绩表. 表的数据有: 一.内连接-inner ...

  9. sql表连接left join,right join,inner join三者之间的区别

    sql表连接left join,right join,inner join区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 (以左表数据为基准,不足补为NULL) ...

  10. SQL ----------- join (inner join 内连接)

    SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段,把两个表中的数据放在一个表中查询 注意: join 连接有多种方式,比如内连接,外连接,交叉连接 可以和where ...

随机推荐

  1. Bootstrap Bootstrap表格插件bootstrap-table配置与应用小结

    Bootstrap表格插件bootstrap-table配置与应用小结   by:授客 QQ:1033553122 1.   测试环境 win7 JQuery-3.2.1.min.js 下载地址: h ...

  2. web渗透测试

    信息收集 网络搜索 目录遍历:site:域名 intitle:index.of 配置文件泄露:site:域名 ext:xml | ext:conf | ext:cnf | ext:reg | ext: ...

  3. ENDIAN的由来及BIG-EDIAN 和LITTLE-ENDIAN(转)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/kingmax54212008/arti ...

  4. error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'

    这个报错一般是因为你图像的路径写错了,找不到图像而导致的. 解决问题的朋友麻烦点个推荐呗!嘿嘿

  5. Android 中的style和Theme的使用

    说明 style和theme的定义是为了改变原有系统设定的默认窗体.字体.背景色.格式等风格而使用.其本质就是系统属性的集合.本篇主要介绍android中的style和theme的具体用法. styl ...

  6. AtCoder Regular Contest 100

    传送门 C - Linear Approximation 题意: 求 \[ \sum_{i=1}^nabs(A_i-(b+i)) \] \(A_i,b\)给出. 思路: 将括号拆开,变为\(A_i-i ...

  7. Noip2017Day2T2 宝藏

    题目链接 problem 有\(n\)个点,\(m\)条无向边,选择一个点开始开辟道路.开辟一条长度为\(L\)的链接\(u,v\)的道路会花费\(L \times K\),K表示从选择的最初点到\( ...

  8. Linux 学习记录三(Vim 文书编辑器).

       所有的Unix Like系统都会内建vi文书编辑器,其他的文书编辑器不一定存在,vim是vi的升级版,具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计.vim 里面加入了很 ...

  9. IT兄弟连 HTML5教程 HTML5和HTML的关系

    HTML5开发现在很火爆,是一门技术,更是一个概念.可以让我们的工作模式.交互模式以及对应用和游戏的体验有了翻天覆地的变化,很多人都知道HTML5这门技术,也常把HTML5读作H5(简称).其实一些外 ...

  10. Find 查找命令时过滤掉某些文件或目录 以及 -maxdepth、-mindepth的用法

    1)find过滤目录使用find命令在linux系统中查找文件时,有时需要忽略某些目录,可以使用"-path 过滤的目录路径 -prune -o"参数来进行过滤.不过必须注意:要忽 ...