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

SQL操作之:连接(JOIN)

目录

  • 内连接
  • 外连接
    • 左连接
    • 右连接
    • 全连接
  • 交叉连接

常见的连接类型包括内连接( INNER JOIN)、左连接( LEFT JOIN)、右连接( RIGHT JOIN)、全连接( FULL JOIN)和交叉连接( CROSS JOIN)。其中,左连接、右连接、全连接属于是外连接( OUTER JOIN)。

内连接

只有当两个表中存在满足连接条件的记录时,才会出现在结果集中。

SELECT students.student_name, grades.grade
FROM students
INNER JOIN grades ON students.student_id = grades.student_id;

外连接

左连接

左连接返回左表的所有记录,以及右表中匹配的记录。如果右表中没有匹配的记录,则用 NULL 填充。

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

右连接

右连接返回右表的所有记录,以及左表中匹配的记录。如果左表中没有匹配的记录,则用 NULL 填充。

SELECT students.student_name, grades.grade
FROM students
RIGHT JOIN grades ON students.student_id = grades.student_id;

全连接

全连接返回左表和右表中的所有记录,无论是否匹配。不匹配的部分用 NULL 填充。结果集的大小通常是两个表的记录数之和,减去匹配的记录数(因为匹配的记录只出现一次)。

SELECT students.student_name, grades.grade
FROM students
FULL JOIN grades ON students.student_id = grades.student_id;

交叉连接

交叉连接返回左表和右表的笛卡尔积,即左表的每条记录与右表的每条记录进行组合。不基于任何条件,生成所有可能的组合。结果集的大小是左表记录数乘以右表记录数。

SELECT colors.color_name, shapes.shape_name
FROM colors
CROSS JOIN shapes;

相关文章:

  • JavaScript DOM 节点操作
  • 极限编程(XP)简介及其价值观与最佳实践
  • VMware虚拟机卡顿、CPU利用率低、编译Linux内核慢,问题解决与实验对比
  • 【案例91】记一次高级版升级环境报错“fail to save VO Array”
  • 批处理脚本的主要解析规则
  • 正确安装PyTorch
  • WebSocket通信协议
  • OpenCV引擎:驱动实时应用开发的科技狂飙
  • leecode第19天
  • 使用YoloV5和Mediapipe实现——上课玩手机检测(附完整源码)
  • 使用 PyTorch 的 `torch.rot90` 进行张量旋转:数据增强的利器
  • 用matlab搭建一个简单的图像分类网络
  • OpenCV 图形API(14)用于执行矩阵(或图像)与一个标量值的逐元素乘法操作函数mulC()
  • Nyquist内置函数-概述
  • Spring Task 定时任务
  • 呼叫中心系统压力测试文档
  • C++模板元编程与表达式模板技术深度解析:从原理到Eigen实战
  • Pysides6 Python3.10 Qt 画一个时钟
  • zotero配合本地deepseek使用(翻译、辅助阅读)
  • Ubuntu桌面系统安装VirtualBox教程