在平时的应用中经常需要从多个数据表中查询和读取数据,并且合并提取匹配的信息,join就是这个时候需要使用的。

Join可以在select,update和delete语句中使用。

join的用途

按照功能大致分为如下三类:

  • inner join(内连接,也叫等值连接):获取两个表中字段匹配关系的记录。单独使用join也是同inner join的作用
  • Left join(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
  • right join(右连接): 与left join的功能正好相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

示例

数据库中有两张表 TABLE_A 和 TABLE_B。并假设TABLE_A 为左表,TABLE_B 为右表。且两张数据表数据如下:

TABLE_A

ID

COM

TIME

1

Twitter

2017-04-12

2

Twitter

2017-04-12

3

Facebook

2015-05-01

4

Facebook

2016-03-06

5

Instagram

2017-04-05

TABLE_B

COM

 FRIEND 

Twitter

10

Facebook

20

Google

22

Inner join

使用inner join连接上述两表,读取TABLE_A表中所有COM字段在TABLE_B表对应的FRIEND值:

select A.ID, A.COM, B.FRIEND from TABLE_A a inner join TABLE_B b on A.COM = B.COM;

则执行完的结果为:

 A.ID 

 A.COM 

 B.FRIEND 

1

Twitter

10

2

Twitter

10

3

Facebook

20

4

Facebook

20

等价于where 子句

select A.ID, A.COM, B.FRIEND from TABLE_A a, TABLE_B b where A.COM = B.COM

left join

使用left join读取左边数据表的全部数据,即便右边表无对应数据。连接后无数据的内容则在数据表中正常按(NULL)显示

select A.ID, A.COM, B.FRIEND from TABLE_A a left join TABLE_B b on A.COM = B.COM

则执行完的结果为:

 A.ID 

 A.COM 

 B.FRIEND 

1

Twitter

10

2

Twitter

10

3

Facebook

20

4

Facebook

20

5

Instagram

NULL

right join

使用right join 会读取右边数据表的全部数据,即便左边边表无对应数据。

select A.ID, A.COM, B.FRIEND from TABLE_A a right join TABLE_B b on A.COM = B.COM

则执行完的结果为:

 A.ID 

 A.COM 

 B.FRIEND 

1

Twitter

10

2

Twitter

10

3

Facebook

20

4

Facebook

20

NULL

NULL

22

假设语句为:

select A.ID, B.COM, B.FRIEND from TABLE_A a right join TABLE_B b on A.COM = B.COM

则执行完的结果为:

 A.ID 

 B.COM 

 B.FRIEND 

1

Twitter

10

2

Twitter

10

3

Facebook

20

4

Facebook

20

NULL

Google

22

数据库:连接join的使用相关推荐

  1. 数据库学习-连接/join

    数据库的连接在我看来就是通过连接将两个表的合成一个新的表 连接/join有四种方式,内连接-inner join,左连接-left join,右连接-right join,全连接-full join. ...

  2. SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join?

    SQL的连接(join)有哪些常见形式?解释一下?解释 SQL 的 left join 和 right join? SQL的连接(join)有哪些常见形式? sql连接查询:把多张表的列组合在一起,产 ...

  3. mysql+join的原理,Mysql连接join查询原理知识点

    Mysql连接join查询原理知识点 Mysql连接(join)查询 1.基本概念 将两个表的每一行,以"两两横向对接"的方式,所得到的所有行的结果. 假设: 表A有n1行,m1列 ...

  4. full join 和full outer join_带你了解数据库中JOIN的用法

    前言 欢迎关注公众号:Coder编程 获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识! 本章主要介绍数据库中Join的的用法,也是我们在使用数据库时非常基础的一个知识点.本次会介绍数据库 ...

  5. SQL 连接 JOIN 例解

    SQL 连接 JOIN 例解.(左连接,右连接,全连接,内连接,交叉连接,自连接) 最近公司在招人,同事问了几个自认为数据库可以的应聘者关于库连接的问题,回答不尽理想- 现在在这写写关于它们的作用 假 ...

  6. mysql版本链图解_图解 SQL 中各种连接 JOIN

    先用文字来捋一下思路,数据库操作中无非就是「增删查改」,其中「 查」用得最多且最复杂,变化多端.查询的时候,我们可以只是单表查询,也可以是多表连接查询,单表查询中的学问也很大,但限于篇幅,本次主要分享 ...

  7. 数据库的join查询

    一.数据库的 join 查询 数据库提供了多种类型的连接方式,它们之间的区别在于:从相互交叠的不同数据集合中选择用于连接的行时所采用的方法不同. A.内连接 内连接,即最常见的等值连接.[两边的表都加 ...

  8. 小白 MySQL数据库链接查询语句_MySQL数据库——连接查询

    今天将用 "手" 来教大家关于MySQL连接查询的知识! ============================================================= ...

  9. Database之SQLSever:SQL命令实现查询之多表查询、嵌套查询、分页复杂查询,删除表内重复记录数据、连接(join、left join和right join简介及其区别)等案例之详细攻略

    Database之SQLSever:SQL命令实现查询之多表查询.嵌套查询.分页复杂查询,删除表内重复记录数据.连接(join.left join和right join简介及其区别)等案例之详细攻略 ...

  10. ArcGis中空间连接join

    1.连接(join) 1.1概念 为将不同类型的信息放在一起,通常将多个数据表组合在一起,或者称为连接在一起.公共字段.暂时的关系. 源表:包含要追加信息的表. 目标表:接收追加信息的表. 如下图: ...

最新文章

  1. 高级程序员和低级程序员的区别
  2. mysql or中有空查询慢_MySQL 慢查询日志
  3. P4383-[八省联考2018]林克卡特树【wqs二分,树形dp】
  4. MAC电脑使用vue-cli脚手架搭建vue项目;mac使用脚手架vue-cli搭建vue项目
  5. angularjs实际工程目录结构
  6. linux 黑酷命令行背景图片
  7. 多媒体交互应用基础(7)
  8. as没有add as library选项
  9. 基于java+ssh+mysql实现的共享自行车单车租赁|出租管理系统项目源代码
  10. THREE实战2_正交投影相机与透视相机
  11. 2022年河南省安全保护服务人员(初级保安员)考试练习题及答案
  12. 华为机试真题 Java实现【最短木板长度】【100%通过率】【2022.11 Q4 新题】
  13. PYNQ系列学习(三)|pynq与zynq对比(二)
  14. leetcode-Database-577|员工奖金
  15. Redis系列-存储篇list主要操作函数小结
  16. 北京一周行(有关《MOOC课程设计实战》高级研修班)
  17. 搜索:多模态搜索算法实践【工业界:将其他模态(视频、音频)的信息降维到文本模态】【学术界:将所有模型信息映射到公共向量空间】
  18. ViewState 数据太大影响性能导致页面报错
  19. 分布式RPC框架Dubbo详解
  20. 大学物理实验计算机仿真 光电效应,光电效应仿真实验的教学探究

热门文章

  1. MySQL关键词和保留词
  2. 想要成为 NLP 领域的大牛?从 ChatGPT 的 5 大自然语言模型开始了解吧(LM、Transformer、GPT、RLHF、LLM)——小白也能看得懂
  3. Word里公式和文字不对齐的解决方法
  4. Mysql 命令大全
  5. MySQL 8 复制(九)——组复制联机配置
  6. mathtype在html中无法显示,MathType公式不显示或者显示为空格怎么解决
  7. 这个Github宝藏仓库竟然收藏了这么多好东西?
  8. QT与数据库的连接,查询和修改
  9. 去掉Word中文档截图的阴影
  10. txt 转 xml (亲测有效)