一篇文章带你快速理解MySQL中的内连接和外连接

news/2024/11/2 16:32:18/

1. 内连接

内连接返回两个表中匹配连接条件的数据行。只有当两个表中都有匹配的行时,结果中才会包含这些行。如果连接条件不满足,那么这些行就不会出现在结果集中。

语法:

mysql">select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件;

案例:

mysql">SELECT columns
FROM table1
INNER JOIN table2
ON table1.common_field = table2.common_field;

2. 外连接

外连接返回至少在一个表中匹配连接条件的数据行。外连接分为左外连接、右外连接和全外连接。

2.1 左外连接

左外连接返回左表(LEFT JOIN关键字左边的表)的所有行,即使右表中没有匹配的行。如果右表中没有匹配的行,结果集中这些行的右表列将包含NULL。

语法:

mysql">select 字段名 from 表名1 left join 表名2 on 连接条件

案例:

mysql">SELECT columns
FROM table1
LEFT JOIN table2
ON table1.common_field = table2.common_field;

2.2 右外连接

右外连接返回右表(RIGHT JOIN关键字右边的表)的所有行,即使左表中没有匹配的行。如果左表中没有匹配的行,结果集中这些行的左表列将包含NULL。

语法:

mysql">select 字段 from 表名1 right join 表名2 on 连接条件;

案例:

mysql">SELECT columns
FROM table1
RIGHT JOIN table2
ON table1.common_field = table2.common_field;

2.3 全外连接

MySQL不支持全外连接(FULL OUTER JOIN),但你可以通过使用UNION来模拟全外连接的效果。全外连接返回两个表中所有行,无论它们是否匹配。如果一个表中有匹配,而另一个表中没有,那么没有匹配的表的列将包含NULL。

案例:

mysql">SELECT columns
FROM table1
LEFT JOIN table2
ON table1.common_field = table2.common_field
UNION
SELECT columns
FROM table1
RIGHT JOIN table2
ON table1.common_field = table2.common_field
WHERE table1.common_field IS NULL;

总结归纳

  • 内连接(INNER JOIN):只返回两个表中都有匹配的行。
  • 左外连接(LEFT JOIN):返回左表的所有行,右表中没有匹配的行将用NULL填充。
  • 右外连接(RIGHT JOIN):返回右表的所有行,左表中没有匹配的行将用NULL填充。
  • 全外连接(FULL JOIN):返回两个表中的所有行,没有匹配的行将用NULL填充。

http://www.ppmy.cn/news/1543912.html

相关文章

通用型函数——冒泡排序

对于一般类型数据冒泡排序 &#xff08;int 、double 、char 、flort&#xff09; 代码&#xff1a;&#xff08;int型&#xff09; void bubble_sort(int* arr){int lensizeof(arr)/sizeof(int);int temp0;for(int i0;i<len-1;i){for(int j0;j<(len-i-1);j){if(arr[j…

AI 聊天机器人的兴起:GPT-3 和 BERT 如何重新定义对话体验

一、说明 当我们深入研究 AI 世界时&#xff0c;了解自然语言处理 &#xff08;NLP&#xff09; 领域取得的巨大进步非常重要。NLP 是 AI 的一个分支&#xff0c;专注于使计算机能够理解、解释和生成人类语言。GPT-3 和 BERT 等语言模型的开发是这一旅程中的一个重要里程碑&…

Android Studio获取本地aar,最新依赖jar/aar

每次清缓存后打开Android Studio的项目都要加载依赖库很久&#xff0c;那是网络要下载 依赖库和各种指针索引构建&#xff0c;本文提供获取本地依赖库的aar方法&#xff0c;然后把aar以libs的包本地方式引入&#xff0c;减少网络下载&#xff0c;会把kts和groovy的代码都展示。…

股价已经暴跌,在财报公布前,Pinterest股票该买进还是卖出?

猛兽财经核心观点&#xff1a; &#xff08;1&#xff09;Pinterest的股价今年以来已经从最高点大幅下跌。 &#xff08;2&#xff09;在过去几年里&#xff0c;该公司的增长已经放缓。 &#xff08;3&#xff09;猛兽财经对Pinterest股价的技术分析&#xff1a;如果Pinterest的…

SpringBoot中使用多线程ThreadPoolTaskExecutor+CompletableFuture

SpringBoot中使用多线程ThreadPoolTaskExecutorCompletableFuture 定义一个线程池&#xff0c;并将其注入为bean 我使用的是spring提供的线程池&#xff0c;所以不需要写关闭的逻辑 import org.springframework.context.annotation.Bean; import org.springframework.context.…

齐次线性微分方程的解的性质与结构

内容来源 常微分方程(第四版) (王高雄,周之铭,朱思铭,王寿松) 高等教育出版社 齐次线性微分方程定义 d n x d t n a 1 ( t ) d n − 1 x d t n − 1 ⋯ a n − 1 ( t ) d x d t a n ( t ) x 0 \frac{\mathrm{d}^nx}{\mathrm{d}t^n} a_1(t)\frac{\mathrm{d}^{n-1}x}{\math…

第16课 核心函数(方法)

掌握常用的内置函数及其用法。 数学类函数&#xff1a;abs、divmod、max、min、pow、round、sum。 类型转换函数&#xff1a;bool、int、float、str、ord、chr、bin、hex、tuple、list、dict、set、enumerate、range、object。 序列操作函数&#xff1a;all、any、filter、m…

同WiFi网络情况下,多个手机怎么实现不同城市的IP

在同一个WiFi网络下&#xff0c;所有设备通常都会共享同一个公网IP地址&#xff0c;因为它们连接到的是同一个路由器。要使多个手机显示为不同城市的IP地址&#xff0c;你需要使用以下方法&#xff1a; 更改网络设置 在手机的设置中&#xff0c;可以找到“无线和网络”或“网…