MySQL Join 类型

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

1 Join 类型有哪些

SQL Join 类型的区别
MySQL Join 类型,MySQL,mysql,left join,right join,inner join,full join

  • Inner Join: 左,右表都有的数据
  • Left Join: 左表返回所有的行, 右表没有的补充为 NULL
  • Right Loin: 右表返回所有的行, 左表没有的补充为 NULL
  • Full Outer Join: 左表 + 右表 所有数据

用户表:
MySQL Join 类型,MySQL,mysql,left join,right join,inner join,full join
答题表:
MySQL Join 类型,MySQL,mysql,left join,right join,inner join,full join

2 Inner Join

查询左表 和 右表都有的数据
用户表 user_no = 1000 和 答题表 user_no = 6543 , 不在交集范围, 没有在查询出来

-- inner join --
select tup.user_no, tup.university, tqpd.question_id, tqpd.result  
    from t_user_profile tup inner join t_question_practice_detail tqpd  
        on tup.user_no = tqpd.user_no;

MySQL Join 类型,MySQL,mysql,left join,right join,inner join,full join

3 Left Join

左表返回所有的行, 右表没有的补充为 NULL
用户表 user_no = 1000 对应的答题信息为空, 补充 NULL, 答题表 user_no = 6543 不在查询范围

-- left join --
select tup.user_no, tup.university, tqpd.question_id, tqpd.result  
    from t_user_profile tup left join t_question_practice_detail tqpd  
        on tup.user_no = tqpd.user_no;

MySQL Join 类型,MySQL,mysql,left join,right join,inner join,full join

4 Right Join

右表返回所有的行, 左表没有的补充为 NULL
答题表 user_no = 6543 对应的用户信息为空, 补充 NULL, 用户表 user_no = 1000 不在查询范围

-- right join --  
select tup.user_no, tup.university, tqpd.question_id, tqpd.result  
    from t_user_profile tup right join t_question_practice_detail tqpd  
        on tup.user_no = tqpd.user_no;

MySQL Join 类型,MySQL,mysql,left join,right join,inner join,full join

5 Full Join

在 MySQL 中没有 Full Join, 可以用 left join 和 right join 实现
用户表 user_no = 1000 对应的答题信息补充 NULL, 答题表 user_no = 6543 对应的用户信息补充 NULL

-- left join and right join --  
select tup.user_no, tup.university, tqpd.question_id, tqpd.result  
    from t_user_profile tup left join t_question_practice_detail tqpd  
        on tup.user_no = tqpd.user_no  
union  
select tup.user_no, tup.university, tqpd.question_id, tqpd.result  
    from t_user_profile tup right join t_question_practice_detail tqpd  
        on tup.user_no = tqpd.user_no;

MySQL Join 类型,MySQL,mysql,left join,right join,inner join,full join文章来源地址https://www.toymoban.com/news/detail-720375.html

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

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

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

相关文章

  • MySQL Inner Join 和 Left Join 详解

    Inner Join Inner Join 是一种 SQL 查询语句,用于在两个或多个表中查找共有的行。Inner Join 的语法如下: SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name; 其中, table1 和 table2 是需要连接的表, column_name 是需要返回的列名。 ON 用于指定连接条件。

    2024年02月05日
    浏览(51)
  • MySQL - Left Join和Inner Join的效率对比,以及优化

    最近在写代码的时候,遇到了需要多表连接的一个问题,初始sql类似于: 这样的多个left join组合,总觉得这种写法是有问题的,后续使用inner join发现速度要比left join快一些 关于left join的概念,大家是都知道的(返回左边全部记录,右表不满足匹配条件的记录对应行返回nul

    2024年02月03日
    浏览(52)
  • MySQL left join 和 left outer join 区别

    先说结论: left join 和 left outer join 的结果是一致的。 我不知道各位大神是怎么测试的,网上面就说两个不一样,我A、B表都是有重复数据的,为啥结果是一样的。 表A 表B 左连接 左外连接 以下MySQL官方文档的说明(2664页),outer join是为了某些第三方程序的兼容性而存在的。 微软

    2024年02月10日
    浏览(42)
  • 工作的记录 left join on and 和 inner join on and的多条件查询区别

    eElasticsearch使用——结合MybatisPlus使用ES es和MySQL数据一致性 结合RabbitMQ实现解耦-CSDN博客 关于相对定位与绝对定位的区别_相对定位和绝对定位的区别-CSDN博客 display:flex(弹性盒子布局)详解_display: flex-CSDN博客 justify-content - CSS:层叠样式表 | MDN (mozilla.org) align-items - CSS:层叠样式

    2024年02月10日
    浏览(47)
  • MSQL系列(十一) Mysql实战-Inner Join算法底层原理及驱动表选择

    Mysql实战-Inner Join算法驱动表选择 前面我们讲解了B+Tree的索引结构,及Mysql的存储引擎MyISAM和InnoDB,也详细讲解下 left Join的底层驱动表 选择, 并且初步了解 Inner join是Mysql 主动选择优化的驱动表,知道索引要建立在被驱动表上 那么对于Inner join 来说, 到底什么是小表? 1.建表及测

    2024年02月07日
    浏览(38)
  • mysql的两张表left join 进行关联后,索引进行优化案例

    1.表1没加索引  2.表2没加索引 3.查看索引 1.表1添加索引   2.表2添加索引   3.查看  

    2024年02月12日
    浏览(46)
  • 关于Mysql使用left join写查询语句执行很慢的问题解决

    目录 (一)前言 (二)正文 1. 表结构/索引展示 (1)表结构 (2)各表索引情况 2. 存在性能问题的SQL语句 3. 解决思路 (1)执行计划思路调优 (2)字符集匹配调优 (三)总结 1. 关于执行计划中TYPE的性能比较 2. 关于left join优化 3. 其他注意点 这几天供应商在测试环境上使

    2024年02月02日
    浏览(49)
  • 【SQL开发实战技巧】系列(三十五):数仓报表场景☞根据条件返回不同列的数据以及Left /Full Join注意事项

    【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事 【SQL开发实战技巧】系列(二):简单单表查询 【SQL开发实战技巧】系列(三):SQL排序的那些事 【SQL开发实战技巧】系列(四):从执行计划讨论UNION ALL与空字符串UNION与OR的使用注意事项 【SQL开发实战技巧】系列

    2023年04月12日
    浏览(64)
  • MySQL Join 类型

    SQL Join 类型的区别 Inner Join: 左,右表都有的数据 Left Join: 左表返回所有的行, 右表没有的补充为 NULL Right Loin: 右表返回所有的行, 左表没有的补充为 NULL Full Outer Join: 左表 + 右表 所有数据 用户表: 答题表: 查询左表 和 右表都有的数据 用户表 user_no = 1000 和 答题表 user_no = 6543 ,

    2024年02月08日
    浏览(30)
  • JOIN与INNER JOIN区别

    一、指代不同 1、JOIN:用于根据两个或多个表中的列之间的关系,从这些表中查询数据。 2、INNER JOIN :组合两个表中的记录,只要在公共字段之中有相符的值。 二、特点不同 1、JOIN:每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间

    2024年02月12日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包