mysql中的内连接与外连接

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

  1. 内连接(INNER JOIN)

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

    语法如下:

    sql 复制代码
    SELECT columns
    FROM table1
    INNER JOIN table2 ON table1.column = table2.column;

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

    sql 复制代码
    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 值。

      语法如下:

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

      语法如下:

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

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

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

    sql 复制代码
    SELECT students.name, grades.grade
    FROM students
    LEFT JOIN grades ON students.student_id = grades.student_id;
相关推荐
Gain_chance1 分钟前
35-学习笔记尚硅谷数仓搭建-DWS层最近n日汇总表及历史至今汇总表建表语句
数据库·数据仓库·hive·笔记·学习
此生只爱蛋26 分钟前
【Redis】主从复制
数据库·redis
马猴烧酒.1 小时前
【面试八股|JAVA多线程】JAVA多线程常考面试题详解
java·服务器·数据库
天天爱吃肉82181 小时前
跟着创意天才周杰伦学新能源汽车研发测试!3年从工程师到领域专家的成长秘籍!
数据库·python·算法·分类·汽车
大巨头1 小时前
sql2008 数据库分页语句
数据库
m0_715575341 小时前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python
老邓计算机毕设2 小时前
SSM智慧社区家政服务系统80q7o(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架
松涛和鸣3 小时前
72、IMX6ULL驱动实战:设备树(DTS/DTB)+ GPIO子系统+Platform总线
linux·服务器·arm开发·数据库·单片机
likangbinlxa3 小时前
【Oracle11g SQL详解】UPDATE 和 DELETE 操作的正确使用
数据库·sql
r i c k4 小时前
数据库系统学习笔记
数据库·笔记·学习