当前位置: 首页 > news >正文

mysql中的内连接与外连接

在MySQL中,内连接和外连接是用于从多个表中检索数据的两种不同的连接方式。

  1. 内连接(INNER JOIN)
    内连接返回两个表之间匹配的行。它只返回两个表中共同匹配的行,如果在一个表中没有匹配到对应的行,则不会显示在结果中。

    语法如下:

    SELECT columns
    FROM table1
    INNER JOIN table2 ON table1.column = table2.column;
    

    例如,假设我们有两个表:studentsgrades,它们通过学生ID进行关联。下面的查询将返回两个表中匹配的学生及其成绩:

    SELECT students.name, grades.grade
    FROM students
    INNER JOIN grades ON students.student_id = grades.student_id;
    
  2. 外连接(OUTER JOIN)
    外连接允许返回匹配的行以及未匹配的行。MySQL支持左外连接(LEFT JOIN)、右外连接(RIGHT JOIN)和全外连接(FULL JOIN)。

    • 左外连接(LEFT JOIN):返回左表中的所有行,以及右表中与左表中行匹配的行。如果右表中没有匹配的行,则会在结果中显示 NULL 值。

      语法如下:

      SELECT columns
      FROM table1
      LEFT JOIN table2 ON table1.column = table2.column;
      
    • 右外连接(RIGHT JOIN):与左外连接类似,但是返回右表中的所有行,以及左表中与右表中行匹配的行。

      语法如下:

      SELECT columns
      FROM table1
      RIGHT JOIN table2 ON table1.column = table2.column;
      
    • 全外连接(FULL JOIN):返回两个表中的所有行,并且对于没有匹配的行,将会使用 NULL 值填充。

      MySQL并不直接支持FULL JOIN,但可以通过UNION ALL和LEFT JOIN、RIGHT JOIN的组合来实现。

    例如,下面的查询将返回所有学生,以及他们的成绩(如果有的话):

    SELECT students.name, grades.grade
    FROM students
    LEFT JOIN grades ON students.student_id = grades.student_id;
    

相关文章:

  • 新火种AI|寻求合作伙伴,展开豪赌,推出神秘AI项目...苹果能否突破AI困境?
  • 【busybox记录】【shell指令】mkdir
  • K8s service 进阶
  • windows 执行node报错 800A1391
  • 技术架构设计指南:从需求到实现
  • VSCODE终端输出中文乱码 菱形问号?
  • ehcache3的使用
  • URL在线编码解码
  • 各大翻译软件代码——浔川AI翻译研发社团
  • 华为校招机试 - LRU模拟(20240515)
  • 5G工厂长啥样
  • 每日复盘-20240529
  • 2024 京麟ctf -MazeCodeV1
  • Flutter 中的 RotatedBox 小部件:全面指南
  • 摩尔线程MTT S4000 AI GPU助力30亿参数大模型训练,性能比肩英伟达同类解决方案
  • hexo+github搭建个人博客
  • [笔记] php常见简单功能及函数
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • Android单元测试 - 几个重要问题
  • CEF与代理
  • codis proxy处理流程
  • ES6简单总结(搭配简单的讲解和小案例)
  • flutter的key在widget list的作用以及必要性
  • Laravel Mix运行时关于es2015报错解决方案
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 技术发展面试
  • 微信支付JSAPI,实测!终极方案
  • 项目管理碎碎念系列之一:干系人管理
  • 小程序01:wepy框架整合iview webapp UI
  • 怎样选择前端框架
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #Linux(make工具和makefile文件以及makefile语法)
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (1)(1.9) MSP (version 4.2)
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (含笔试题)深度解析数据在内存中的存储
  • (四)模仿学习-完成后台管理页面查询
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (一) storm的集群安装与配置
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .NET Core 项目指定SDK版本
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • .sh
  • ??在JSP中,java和JavaScript如何交互?
  • @Transient注解
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [20190401]关于semtimedop函数调用.txt
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [AIGC] Java List接口详解