iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL JOIN Summary
  • 327
分享到

MySQL JOIN Summary

2024-04-02 19:04:59 327人浏览 安东尼
摘要

1. JOIN语法(精简后)table_reference:    table_factor  | join_tabletable_factor: &nbs


1. JOIN语法(精简后)

table_reference:
    table_factor
  | join_table

table_factor:
    table_subquery [AS] alias
  | ( table_references )

join_table:
    table_reference [INNER | CROSS] JOIN table_factor [join_condition]
  | table_reference {LEFT|RIGHT} [OUTER] JOIN table_reference join_condition
  | table_reference NATURAL [{LEFT|RIGHT} [OUTER]] JOIN table_factor

join_condition:
    ON conditional_expr
  | USING (column_list)


2. JOIN分类: 内连接, 外连接.


2.1 内连接(INNER JOIN)

a. 在Mysql中, JOIN, CROSS JOIN, and INNER JOIN语法是等价的; 不指定ON条件, 得到的是笛卡尔积(That is, each and every row in the first table is joined to each and every row in the second table).


b. 内连接(INNER JOIN), 或称等值连接, 其只显示满足条件的记录.

若表left_tbl和right_tbl, 在表示内连接时, 有两种形式: left_tbl INNER JOIN right_tbl, 和left_tbl,(comma) right_tbl. 该两种形式在语法上是等价的, 但是JOIN的优先级高于,(comma operator), 混用时可能产生错误, 最好使用JOIN.

内连接的两种表现形式, 分别对应了两种获取数据的方式: ON, 和WHERE. 在使用ON时, 也都可以改写为,(comma). 但ON说明的是: 如何完成表间的JOIN操作, 而WHERE只是在结果集种过滤出满足条件的记录, 含义还是有区别的.


2.2 外连接(OUTER JOIN)

a. 外连接有两种形式: LEFT | RIGHT [OUTER] JOIN(OUTER可省略), 常见用于获取在表left_tbl, 而不在表right_tbl中的数据.
SELECT left_tbl.* FROM left_tbl LEFT JOIN right_tbl ON left_tbl.id = right_tbl.id WHERE right_tbl.id IS NULL; 


b. 若表a, 和b中有相同的字段, 如c1, c2, c3, 那么下面的两种写法是等价的:
a LEFT JOIN b USING (c1, c2, c3)
a LEFT JOIN b ON a.c1 = b.c1 AND a.c2 = b.c2 AND a.c3 = b.c3


c. 对于a LEFT JOIN b USING (c1, c2, c3), 和a NATURAL LEFT JOIN b获取的结果集, 有稍许不同, 后者删除了重复字段. 这里NATURAL暂看成个关键字吧, 可和内外连接结合使用, NATURAL JOIN的特点是, 同名字段相连接, 且去重. 其实际作用不大.


您可能感兴趣的文档:

--结束END--

本文标题: MySQL JOIN Summary

本文链接: https://www.lsjlt.com/news/39692.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL JOIN Summary
    1. JOIN语法(精简后)table_reference:    table_factor  | join_tabletable_factor: &nbs...
    99+
    2022-10-18
  • MySQL Stored Programs Summary
    Part 1. 分类Stored Programs  - Stored Routines     - Procedure     - F...
    99+
    2022-10-18
  • MySQL连接查询INNER JOIN、LEFT JOIN、RIGHT JOIN
      一、内连接(INNER JOIN) 获取两个表中字段匹配关系的记录,需要两个表都满足条件的数据才会返回。如下图阴影部分所示区域。   实例:有一张表table_a,数据如下: 表table_b,数据如下: 内连接SQL(...
    99+
    2017-06-25
    MySQL连接查询INNER JOIN LEFT JOIN RIGHT JOIN
  • mysql中的join、left join和right join的用法
    本篇内容介绍了“mysql中的join、left join和right join的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大...
    99+
    2022-10-18
  • pt-summary主要是用来统计机器信息pt-mysql-summary分析mysq数据库
    该段展示当前日期和时间,以及服务器和操作系统的概览。 Percona Toolkit System Summary Report 该段提取自/proc/cpuinfo Processor 内存信息。生成自f...
    99+
    2022-10-18
  • MySQL的join使用
    #内连接select * from auth_user u inner join auth_group g on u.id = g.id; #左连接select * from auth_user a left join...
    99+
    2015-08-21
    MySQL的join使用
  • MySQL JOIN的使用
    JOIN的使用 JOIN 理论 MySQL 七种 JOIN 的 SQL 编写 环境搭建 # 创建部门表 CREATE TABLE tbl_dept ( id INT NOT NULL AUTO_INCREMENT, deptNa...
    99+
    2017-12-31
    MySQL JOIN的使用
  • mysql left join快速转inner join的过程
    在日常优化过程中,发现一个怪事情,同一个SQL出现两个完全不一样执行计划,left join 连驱动表都可以变成不一样。 对于left join,如果where条件里有被关联表过滤,left join有...
    99+
    2022-05-15
    mysql left join inner join mysql left join转 inner join
  • mysql中inner join和left join如何使用
    这篇文章主要介绍“mysql中inner join和left join如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql中inner join和left&...
    99+
    2023-07-05
  • mysql 性能优化(order by limit , inner join 、 left join)
    优化前: select t1.id, t1.create_time, t1.account, t2.name from tab1 t1 inner join tab2 t2 on t1.account = t2.bip order...
    99+
    2020-03-27
    mysql 性能优化(order by limit inner join left join)
  • 我们如何区分 MySQL CROSS JOIN 和 INNER JOIN?
    我们只能根据连接谓词(即指定的条件)来区分 MySQL CROSS JOIN 和 INNER JOIN。在编写 INNER JOIN 查询时,我们需要指定条件,但相反,在编写 CROSS JOIN 查询时,我们不需要指定条件。为了理解它,我...
    99+
    2023-10-22
  • MySQL 支持Hash Join咯
    0.20 对非等值条件(执行Hash Join再进行过滤(Filter)),笛卡尔积都能使用Hash Join。 CREATE TABLE `t4` ( `c1` int DEFAULT NULL, `c2` int DEFAULT...
    99+
    2018-12-05
    MySQL 支持Hash Join咯
  • MySQL的join buffer原理
    一、MySQL的join buffer 在MySQL对于join操作的处理过程中,join buffer是一个重要的概念,也是MySQL对于table join的一个重要的优化手段。虽然这个概念实现并不复杂,但是这...
    99+
    2022-05-19
    MySQL join buffer
  • mysql如何优化join
    本篇文章为大家展示了mysql如何优化join,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 mysql 在join 表的时候相当类型的...
    99+
    2022-10-18
  • MySQL中JOIN怎么用
    小编给大家分享一下MySQL中JOIN怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!简介A的独有+AB的公有B的独有+AB的公有AB的公有A的独有B的独有A...
    99+
    2023-06-29
  • MySQL多表查询内连接外连接详解,join、left join、right join、full join的使用
    目录 1、多表查询概览 1.1、分类 1.2、外连接的分类 1.3、常用的SQL语法标准 2、内外联接案例 2.1、初始化表 2.2、内连接 2.3、外连接案例 2.4、全连接案例 2.5、union和union all...
    99+
    2023-09-02
    mysql 数据库 java
  • mysql left join快速转inner join的详细过程
    这篇文章主要讲解了“mysql left join快速转inner join的详细过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql left join快速转inner join的...
    99+
    2023-06-20
  • join、inner join、left join、right join、outer join的区别
    什么是联结? union、intersect等集合运算,它的特征是以 “行” 为单位进行操作,通俗点说,就是进行这些集合运算,会导致记录行数的增减,使用union会增加记录行数,使用 intersect 或 expect...
    99+
    2023-09-01
    sql mysql
  • Mysql Join-连接查询(中)
    Mysql Join-连接查询(中) 认识 就我平时的数据接触来看, 连接查询也没有很复杂,不够是非常需要耐心和逻辑的, 一点点将数据查出来, 拼接等. 没有什么技巧, 多练习就会了. 无非就是表之间根据共同key来连接, 查询时结合uni...
    99+
    2016-09-20
    Mysql Join-连接查询(中)
  • MySql中如何使用JOIN
    这篇文章将为大家详细讲解有关MySql中如何使用JOIN,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JOIN的含义就如英文单词“join”一样,连接两张表,大致分为内连接,外连接,右连接,左连接,自然连...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作