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日
    浏览(45)
  • MSQL系列(十三) Mysql实战-left/right/inner join 使用详解及索引优化

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

    2024年02月05日
    浏览(48)
  • 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日
    浏览(51)
  • 【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日
    浏览(57)
  • clickhouse join查询算法

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

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

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

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

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

    2024年01月23日
    浏览(41)
  • Elasticsearch--查询(nested、join)

    嵌套类型 数据的某个值是json、object对象;不再是简单的数据类型,或者简单数据类型的数组;那么还用之前的查询方式就有问题了。因为ES在存储复杂类型的时候会把对象的复杂层次结果扁平化为一个键值对列表 。此时,需要用nested进行查询 扁平化存储 ​  用法 使用nest

    2024年02月16日
    浏览(41)
  • 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日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包