mysql的JOIN用法详解-附带查询示例

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

mysql的JOIN用法详解-附带查询示例

在 SQL 中,JOIN
是用于将多个表中的数据连接在一起的操作。它通过指定连接条件将两个或多个表中符合条件的行组合起来,产生一个新的结果集。

SQL 中常见的 JOIN 类型包括 INNER JOINLEFT JOINRIGHT JOINFULL OUTER JOIN
下面详细介绍这些 JOIN 类型的用法:

1.INNER JOIN(内连接):它返回两个表中满足连接条件的行。它只返回两个表中共同满足条件的行,不包含不匹配的行。语法如下:

SELECT 列名 FROM1 INNER JOIN2 ON 连接条件;

2.LEFT JOIN(左连接):它返回左边表中的所有行,以及右边表中满足连接条件的行。如果右边表中没有匹配的行,将返回 NULL 值。语法如下:

SELECT 列名 FROM1 LEFT JOIN2 ON 连接条件;

3.RIGHT JOIN(右连接):它返回右边表中的所有行,以及左边表中满足连接条件的行。如果左边表中没有匹配的行,将返回 NULL 值。语法如下:

SELECT 列名 FROM1 RIGHT JOIN2 ON 连接条件;

4.FULL OUTER JOIN(全外连接):它返回两个表中所有的行,无论是否满足连接条件。如果某个表中没有匹配的行,将返回 NULL 值。语法如下:

SELECT 列名 FROM1 FULL OUTER JOIN2 ON 连接条件;

在连接条件中,可以使用比较操作符(如 =、<>、<、>)来指定连接的条件。连接条件可以是一个列的相等条件,也可以是多个列的组合条件。
需要注意的是,JOIN 操作可能会导致结果集中的行数变多,因此需要根据具体的业务需求来选择合适的 JOIN 类型。

附上一段项目实际使用的示例代码:

<select id="getPointDetail" resultType="com.****************">
        SELECT
        hp.bk_id zdbh,
        spb.lng,
        spb.lat,
        spb.bdrq,
        spb.xzq,
        spb.ydlx,
        spb.ssdzdy as swdzdy,
        a.value as wljcdwlxmc,
        b.value as jcjlxmc,
        c.value as jcjjbmc,
        d.value as dxsllxmc,
        e.value as hsclxmc,
        f.value as ydlxmc,
        sgnp.*
        FROM hub_point hp
        LEFT JOIN sat_groundwater_network_point sgnp ON hp.hid = sgnp.hid
        left join sat_point_base spb on spb.hid = hp.hid
        left join (select * from sys_dict_item where fk_sort_code = '1019') a on sgnp.wljcdwlx = a.code
        left join (select * from sys_dict_item where fk_sort_code = '1017') b on sgnp.jcjlx = b.code
        left join (select * from sys_dict_item where fk_sort_code = '1016') c on sgnp.jcjjb = c.code
        left join (select * from sys_dict_item where fk_sort_code = '1013') d on sgnp.dxsllx = d.code
        left join (select * from sys_dict_item where fk_sort_code = '1012') e on sgnp.hsclx = e.code
        left join (select * from sys_dict_item where fk_sort_code = '1001') f on spb.ydlx = f.code
        <where>
            <if test="id != null and id != ''">
                hp.hid = #{id}
            </if>
        </where>
        ORDER BY sgnp.load_dts DESC
        LIMIT 1
    </select>

这段示例代码是一个sringboot项目maper映射的 SQL 查询语句
下面对代码进行逐行解释:文章来源地址https://www.toymoban.com/news/detail-856083.html

  1. 第1行: 标签定义了一个查询语句,id 属性为 “getPointDetail”。
  2. 第2行至第20行:这是实际的查询语句,在这些行中,通过 SELECT 关键字选择了多个列作为结果集,并通过 FROM 关键字指定了表。查询语句返回了一个结果集,其中包括了从 hub_point
    表、sat_groundwater_network_point 表和 sat_point_base 表中选择的列。
  3. 第7行至第19行:这是多个 LEFT JOIN 子句,将其他表与 hub_point 表进行连接。通过 ON 子句指定连接条件。每个
    LEFT JOIN 子句连接了一个子查询和一个表,子查询是一个从 sys_dict_item 表中选择特定字段的查询,通过 WHERE
    子句和特定条件进行筛选。
  4. 第22行至第24行: 标签用于包裹 WHERE 子句,用来添加额外的条件。在这里,通过
    标签进行条件判断,如果参数 id 不为空且不为空字符串,则将 hp.hid = #{id} 作为条件添加到 WHERE 子句中。
  5. 第26行:通过 ORDER BY 子句按照 sgnp.load_dts 列进行降序排序。
  6. 第27行:使用 LIMIT 子句限制结果集的返回行数为 1。
  7. 以上就是这段代码的简要解释。它查询了多个表,并使用了多个 LEFT JOIN 进行表的连接。同时,它还使用了 WHERE
    子句、ORDER BY 子句和 LIMIT 子句来进一步筛选和排序结果集。

到了这里,关于mysql的JOIN用法详解-附带查询示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • MySQL基础篇补充 | 多表查询中使用SQL99实现7种JOIN操作、SQL99语法新特性

    目录 一:多表查询中使用SQL99实现7种JOIN操作  二:SQL99语法新特性 1. 自然连接Natural 2. USING连接 在多表查询中,除了遇到最多的内连接、左外连接和右外连接,还有其它的连接方式;接下来就聊聊其它的连接方式,如下图:  ​​​​​​ 并且在正式讲解之前,需要先了解

    2024年02月03日
    浏览(33)
  • MSQL系列(十三) Mysql实战-left/right/inner join 使用详解及索引优化

    Mysql实战-left/right/inner join 使用详解及索引优化 前面我们讲解了B+Tree的索引结构,也详细讲解下Join的底层驱动表 选择原理,今天我们来了解一下为什么会出现内连接外连接,两种连接方式,另外实战一下内连接和几种最常用的join语法 Left join 左表 left join 右表查询 right join 左

    2024年02月05日
    浏览(35)
  • 6、hive的select(GROUP BY、ORDER BY、CLUSTER BY、SORT BY、LIMIT、union、CTE)、join使用详解及示例

    1、apache-hive-3.1.2简介及部署(三种部署方式-内嵌模式、本地模式和远程模式)及验证详解 2、hive相关概念详解–架构、读写文件机制、数据存储 3、hive的使用示例详解-建表、数据类型详解、内部外部表、分区表、分桶表 4、hive的使用示例详解-事务表、视图、物化视图、DDL

    2024年02月11日
    浏览(39)
  • 【flink番外篇】2、flink的23种算子window join 和interval join 数据倾斜、分区介绍及详细示例(1)- window join

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年02月03日
    浏览(48)
  • clickhouse join查询算法

    算法对比: 使用方法: 每个算法试试测试一下性能,如果没效果,考虑一下宽表。

    2024年01月16日
    浏览(38)
  • 【flink番外篇】2、flink的23种算子window join 和interval join 数据倾斜、分区介绍及详细示例(3)- 数据倾斜处理、分区示例

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年02月03日
    浏览(45)
  • python的join函数的用法及实例

    目录 1.join函数的语法及用法 (1)语法:\\\'sep\\\'.join(sep_object) (2)用法:连接任意数量的字符串(包括要连接的元素字符串、元组、列表、字典),用新的目标分隔符连接,返回新的字符串。 2.join函数的实例 (1)对象为字符串 (2)对象为元组 (3)对象为列表 (4)对象为字

    2024年01月23日
    浏览(33)
  • Elasticsearch之join关联查询

    目录 一、join总述 1、关系类比 2、使用限制 3、性能问题 二、Mapping 1、举例说明  2、mapping释义 三、插入数据 1、插入父文档 2、插入子文档 四、关联查询 1、has_parent查询(父查子) 3、has_child查询(子查父) 目录 一、join总述 1、关系类比 2、使用限制 3、性能问题 二、Mapp

    2024年02月03日
    浏览(32)
  • Hive(27): join连接查询

    1 join概念回顾 根据数据库的三范式设计要求和日常工作习惯来说,我们通常不会设计一张大表把所有类型的数据都放在一起,而是不同类型的数据设计不同的表存储。比如在设计一个订单数据表的时候,可以将客户编号作为一个外键和订单表建立相应的关系。而不可以在订单

    2024年02月15日
    浏览(30)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包