MySQL外连接

MySQL外连接是一种在两个或多个表之间进行联接操作的方法。它返回符合联接条件的所有行,同时也返回未匹配的行。

MySQL支持左外连接、右外连接和全外连接。

左外连接(LEFT JOIN)是指从左表中返回所有记录,无论是否在右表中有匹配记录。如果右表中没有匹配记录,则返回空值。

右外连接(RIGHT JOIN)是指从右表中返回所有记录,无论是否在左表中有匹配记录。如果左表中没有匹配记录,则返回空值。

全外连接(FULL JOIN)是指从左表和右表中返回所有记录,无论是否在对方表中有匹配记录。如果两个表中都没有匹配记录,则返回空值。

下面是一个简单的例子:

表1:Customers CustomerID CustomerName 1 John 2 Mary 3 Peter

表2:Orders OrderID CustomerID OrderDate 1 1 2020-01-01 2 2 2020-02-01 3 4 2020-03-01

使用左外连接查询两个表的所有记录:

SELECT Customers.CustomerName, Orders.OrderDate FROM Customers LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

查询结果:

CustomerName OrderDate John 2020-01-01 Mary 2020-02-01 Peter NULL

注意,在MySQL中,LEFT JOIN和LEFT OUTER JOIN是等价的,RIGHT JOIN和RIGHT OUTER JOIN是等价的。

相关推荐
超级种码6 小时前
Redis:Redis持久化机制
数据库·redis·bootstrap
阿里-于怀6 小时前
AgentScope AutoContextMemory:告别 Agent 上下文焦虑
android·java·数据库·agentscope
数据库那些事儿6 小时前
从极速复制“死了么”APP,看AI编程时代的技术选型
数据库
岁岁种桃花儿6 小时前
MySQL知识汇总:讲一讲MySQL中Select语句的执行顺序
数据库·mysql·database
计算机毕设指导67 小时前
基于微信小程序民宿预订管理系统【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·tomcat·maven
言之。7 小时前
Django原子请求
数据库·django·sqlite
ICT董老师7 小时前
kubernetes中operator与helm有什么区别?部署mysql集群是选择operator部署还是helm chart部署?
linux·运维·mysql·云原生·容器·kubernetes
Codeking__7 小时前
Redis初识——Redis的基本特性
数据库·redis·缓存
霖霖总总7 小时前
[小技巧29]Batched Key Access:MySQL JOIN 性能优化的关键技术
数据库·mysql·性能优化
中环留念7 小时前
MySQL 索引全解析:索引类型、聚簇索引、回表与性能优化
sql·mysql·索引·图解