SQL的七种JOIN

这篇具有很好参考价值的文章主要介绍了SQL的七种JOIN。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Mysql的七种JOIN图示

sql join,sql,mysql

在使用 join 时,onwhere 条件的区别如下:

  • on 条件是在生成临时表时使用的条件,它不管 on 中的条件是否为真,都会返回左边表中的记录。

  • where 条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有 join 的含义了,条件不符的就全部过滤掉。

数据准备,我们先准备两张表数据,表1:

sql join,sql,mysql

表2:

sql join,sql,mysql

1,LEFT JOIN 左连接

sql join,sql,mysql

SELECT columns
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;
参数说明:
columns:要显示的列名。
table1:表1的名称。
table2:表2的名称。
column_name:表中用于连接的列名。

sql join,sql,mysql

LEFT JOIN 关键字从左表(Websites)返回所有的行,即使右表(access_log)中没有匹配默认补NULL。

左连接不包含共有部分

sql join,sql,mysql

sql join,sql,mysql

2,RIGHT JOIN 右连接
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;

sql join,sql,mysql

sql join,sql,mysql

右连接不包含共有部分

sql join,sql,mysql

sql join,sql,mysql

3, INNER JOIN 内连接

sql join,sql,mysql

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

sql join,sql,mysql

4,FULL OUTER JOIN全连接

sql join,sql,mysql

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;

sql join,sql,mysql

可以从上面看出,mysql是不支持该语法的,oracle是支持的。

这个时候我们可以使用UNION 操作符进行。

SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

sql join,sql,mysql

只查非共有的部分

sql join,sql,mysql

sql join,sql,mysql文章来源地址https://www.toymoban.com/news/detail-851629.html

到了这里,关于SQL的七种JOIN的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL基础~NATURAL JOIN(自然连接) 和USING的使用(SQL99语法新特性)

    我们在查询两张表时,可能会将 连接条件 设为 相同的字段 ,如下: 而有了 NATURAL JOIN 自然连接后,它会帮我们自动查询两张表中 所有相同的字段 ,然后 进行 等值连接 ,这样就可以直接省略连接条件 这两种写法效果相同,查询到的都是同一个结果 优点 是简化了SQL语句,查

    2024年02月04日
    浏览(50)
  • pod的七种状态

    Pending(等待中) :当Pod被创建后,它处于等待中的状态。在等待中,Kubernetes正在尝试在节点上分配资源并启动Pod。这可能涉及下载镜像、分配IP地址、执行初始化容器等操作。如果Pod一直处于等待中,可能是由于资源不足、调度问题或其他原因导致。 Running(运行中) :一

    2024年02月05日
    浏览(27)
  • 索引失效的七种情况

    以上这些情况都可能导致数据库查询时无法有效地使用索引,从而影响查询性能。为了避免索引失效,需要优化查询语句,合理设计索引,尽量避免上述情况的出现。

    2024年02月10日
    浏览(34)
  • JavaScript的七种数据类型

    在我们的javascript中,每个数据都有不一样的类型,它们被简称为数据类型。 javaScript一共有七种数据类型,它们又被分为两类(基本数据类型和引用数据类型),其结构如下。 基本数据类型: ⭐数值型(number) ⭐字符串型(string) ⭐布尔型(boolean) ⭐未定义(undefined)

    2024年02月15日
    浏览(38)
  • PHP中header()的七种用法

    我们在实际开发中经常使用header()实现一些功能,这篇文章介绍关于header()的7中用法,需要的伙伴的开参考一下。 PHP header()的7中用法: 1、跳转页面 可以使用header()实现跳转页面功能。 2、声明 content-type 调用API接口时,一般都会声明 content-type 的类型,否则无法读写数据。

    2024年02月10日
    浏览(51)
  • Postman的七种断言方法+超时设置!

    超时的设置 Settings-General- Request Timeout in ms(0 for infinity):设置请求超时的时间,默认为0 1.postman断言介绍 postman在发送请求后,需要对返回的结果做判断,验证是否符合预期,如状态码、响应头、响应正文等信息进行断言操作,在设置时会给定一个预期结果,在发送请求后会得到

    2024年02月03日
    浏览(40)
  • 关于Ping命令的七种用法

    今天我们来详细看下ping命令详细使用: 一、ping基本使用详解 在网络中ping是一个十分强大的TCP/IP工具。它的作用主要为: 1、用来检测网络的连通情况和分析网络速度 2、根据域名得到服务器IP 3、根据ping返回的TTL值来判断对方所使用的操作系统及数据包经过路由器数量。 我

    2024年02月12日
    浏览(52)
  • java创建多线程的七种方式

    一、继承Thread,重写run方法 通过自定义一个类(这里起名为:MyThread),继承Thread类,重写run方法,最后在main方法中new出MyThread实例,调用这个实例的继承的Thread类的start方法创建一个线程。 二、实现Runnable接口,重写run方法 通过自定义一个类(这里起名为:MyRunnable)实现

    2024年02月09日
    浏览(53)
  • VUE组件间通信的七种方式

    目录 1、 props / $emit (1)父组件向子组件传值(props的用法) (2)子组件向父组件传递数据($emit的用法) 2、ref / $refs 用法: 3、eventBus事件总线($emit / $on) (1)创建事件中心管理组件之间的通信 (2)发送事件假设有两个兄弟组件 firstCom和secondCom的父组件: 在firstCom组件

    2024年02月05日
    浏览(41)
  • java中HashMap的七种遍历方式

    感兴趣的话大家可以关注一下公众号 : 猿人刘先生 , 欢迎大家一起学习 , 一起进步 , 一起来交流吧! HashMap的多种遍历方式从大体中归类 , 可以分为以下4类 : 迭代器(Iterator) For Each Lambda (JDK 1.8 +) Streams API (JDK 1.8 +) 但是每种方式又有不同的实现类型 : 使用迭代器(Iterator)En

    2023年04月09日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包