SQL中的LEFT JOIN、RIGHT JOIN和INNER JOIN

在SQL中,JOIN操作是连接两个或多个数据库表,并根据两个表之间的共同列(通常是主键和外键)返回数据的重要方法。其中,LEFT JOIN(左连接)、RIGHT JOIN(右连接)和INNER JOIN(内连接)是最常用的三种JOIN类型。下面我们将详细介绍这三种连接方式的原理、语法以及使用示例。

一、LEFT JOIN(左连接)

定义

LEFT JOIN(左连接)返回左表(LEFT JOIN语句中指定的第一个表)的所有行,即使右表(第二个表)中没有匹配的行。如果右表中没有匹配的行,则结果中右表的部分将包含NULL值。

复制代码
SELECT * FROM student s LEFT JOIN class c on s.c_num = c.id

二、RIGHT JOIN(右连接)

定义

RIGHT JOIN(右连接)返回右表(RIGHT JOIN语句中指定的第二个表)的所有行,即使左表(第一个表)中没有匹配的行。如果左表中没有匹配的行,则结果中左表的部分将包含NULL值。

给班级表添加一个id=5,name=五班的数据

然后执行下面的sql

复制代码
SELECT * FROM student s RIGHT JOIN class c on s.c_num = c.id

三、INNER JOIN(内连接)

定义

INNER JOIN(内连接)返回两个表中都满足连接条件的行。如果某个行在一个表中存在而在另一个表中不存在,则该行不会出现在结果集中。

复制代码
SELECT * FROM student s INNER JOIN class c on s.c_num = c.id
相关推荐
彭于晏Yan12 小时前
Springboot实现连接多个ElasticSearch数据库
数据库·spring boot·elasticsearch
light blue bird13 小时前
MES/ERP大数据报表条件索引查询组件
数据库·.net·winform·t-sql·大数据报表
wmfglpz8813 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
m0_5981772313 小时前
MYSQL order by , group by练习
数据库·mysql
TDengine (老段)13 小时前
TDengine IDMP 组态面板 —— 总体介绍
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
jwn99913 小时前
【Mysql】:如何恢复误删的数据?
数据库·mysql
yashuk13 小时前
Redis的安装教程(Windows+Linux)【超详细】
linux·数据库·redis
lzp079113 小时前
mysql之联合索引
数据库·mysql
qq56801807613 小时前
【MySQL】超详细MySQL常用日期格式转换函数、字符串函数、聚合函数(最新版)
数据库·mysql
逆境不可逃13 小时前
【从零入门23种设计模式21】行为型之空对象模式
java·开发语言·数据库·算法·设计模式·职场和发展