SQL之join的简单用法

SQL之join的简单用法

SQL语句的JOIN用于把来自两个或多个表的行结合起来

1)INNER JOIN(内连接)

产生的结果是两个表中交集(相同列里面的相同值)的行。它返回两个表中所有匹配的数据。例如:

sql 复制代码
SELECT *   
FROM TableA   
INNER JOIN TableB ON TableA.PK = TableB.PK;

2)LEFT JOIN(左连接)

结果是左表中的所有行都出现在结果中,而右表中则可能出现空值字段。它返回左表中的所有数据,以及与之匹配的右表中的数据(如果存在)。例如:

sql 复制代码
SELECT *   
FROM employee   
LEFT JOIN department ON employee.department_id = department.department_id;

3)RIGHT JOIN(右连接)

结果是右表中的所有行都出现在结果中,而左表中则可能出现空值字段。它返回右表中的所有数据,以及与之匹配的左表中的数据(如果存在)。例如

sql 复制代码
SELECT *   
FROM employee   
RIGHT JOIN department ON employee.department_id = department.department_id;

4)FULL JOIN(全连接)

结果是两个表中的所有行都出现在结果中,如果某个表中没有与之匹配的行,则对应列会出现空值。它返回两个表中的所有数据(如果存在匹配的话)。例如

sql 复制代码
SELECT *   
FROM employee   
FULL JOIN department ON employee.department_id = department.department_id;

5)NATURAL JOIN(自然连接)

它返回两个表中所有名称相同的列,以及与之匹配的其它列。例如

sql 复制代码
SELECT * FROM employee NATURAL JOIN department;

6)CROSS JOIN

也称为叉积,它返回两个表中的所有可能的行组合,不考虑任何条件。结果中的每个行是两个输入表中的行的组合。例如:

sql 复制代码
SELECT * FROM TableA CROSS JOIN TableB;

7)SELF JOIN

它用于在一个表上自我连接。这通常用于在一张表上反映两个关联的列之间的关系。例如:

sql 复制代码
SELECT * FROM TableA AS t1, TableA AS t2 WHERE t1.id <> t2.id;

8)UNION JOIN

sql 复制代码
SELECT * FROM TableA UNION JOIN TableB;
相关推荐
砚底藏山河2 分钟前
【量化纯GET实战 #23】多股票相关性:用收益率看板块联动
java·数据库·python·金融·数据分析
Java小白笔记20 分钟前
MySQL 8.0 常用内置函数用例
数据库·mysql·mybatis
ZGG00327 分钟前
MySQL 索引详解:B+ 树、聚簇索引与最左前缀
java·数据库·mysql
Ysx42 分钟前
把 SQL 从 2700 次降到 4 次:一个 Java 后端对存量报表的 N+1 手术
sql
勿忘,瞬间1 小时前
Mybatis高阶
java·数据库·mybatis
运维行者_2 小时前
ISP 企业级带宽计费怎么做?网络流量计费的 6 大核心能力
运维·服务器·网络·数据库·支持向量机·接口隔离原则
奇树谦2 小时前
PCB生产制造全流程详解:从开料、钻孔、沉铜到检测、包装
网络·数据库·制造
驾驭人生2 小时前
Hangfire.Redis.StackExchange 已归档停更!生产任务卡死、重复执行、网络抖动问题解决方案
数据库·redis·缓存
xierui1231232 小时前
Agent记忆不是聊天记录:用三层存储构建可追溯的 AI 工作流
数据库·人工智能·aigc·软件工程
2301_800074212 小时前
mysql DQL
数据库·sql·mysql