(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. 通过C#代码调用Dynamics 365 Web API执行批量操作

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  2. 使用Settings sync同步VS Code配置

    使用Settings sync同步VS Code配置 因为要在多台电脑上使用VSCode,想要简单地管理VSCode地配置,不用每次手动去一一配置,保持多个开发环境的同步,于是使用Settings s ...

  3. android studio节省C盘空间的配置方法

    近期发现C盘空闲空间剩余不多了,经过检查发现在C:\Users\<电脑用户名>\的目录下,有这两个文件夹空间比较大,这两文件夹分别是 .AndroidStudioPreview3.2(不同 ...

  4. 【课件】git零基础快速入门实战--重点讲解,在实际生产中整合idea对版本、分支的管理等

    1.git简单描述 git是重要的版本管理工具,几乎每个码农都有自己的git账号管理自己的代码,同时很多公司也是用git管理公司的代码, 因此掌握git在实际生产中的常规使用非常重要. 2.git学习 ...

  5. Django2.1.1与xadmin0.6.0遇到的坑(一)

    (1)django2.0把from django.core.urlresolvers修改成了django.urls 异常信息: ModuleNotFoundError: No module named ...

  6. LeetCode 1243 数组变换

    地址 https://leetcode-cn.com/contest/biweekly-contest-12/problems/array-transformation/ 首先,给你一个初始数组 ar ...

  7. 【Excel】删除重复值

  8. 新书上线:《Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统》,欢迎大家买回去垫椅子垫桌脚

    新书上线 大家好,笔者的新书<Spring Boot+Spring Cloud+Vue+Element项目实战:手把手教你开发权限管理系统>已上线,此书内容充实.材质优良,乃家中必备垫桌脚 ...

  9. 通过windows组策略配置时间同步

    Windows系统中带有NTP服务器和客户端的程序,只需在Windows中简单配置即可实现电脑之间的时间同步. 网上常见的配置NTP服务器的方法是修改系统注册表,这种方法是微软不推荐的.在实际使用中, ...

  10. Python与用户交互

    目录 一.为什么交互? 二.如何交互? 三.Python2的交互 一.为什么交互?   让我们来回顾计算机的发明有何意义,计算机的发明是为了奴役计算机,解放劳动力.假设我们现在写了一个ATM系统取代了 ...