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;
相关推荐
weixin_58061400几秒前
golang如何给图片添加水印_golang图片添加水印解析
jvm·数据库·python
Shorasul几秒前
mysql如何进行表空间传输恢复_mysql transport tablespace实战
jvm·数据库·python
解救女汉子4 分钟前
golang如何实现群聊功能_golang群聊功能实现策略
jvm·数据库·python
m0_684501987 分钟前
如何清理Oracle临时表空间_重建TEMP表空间与释放空间方案
jvm·数据库·python
2301_7775993715 分钟前
Go语言怎么用sync.Map_Go语言并发安全Map教程【详解】
jvm·数据库·python
zhangchaoxies15 分钟前
Go语言如何用定时器_Go语言time.Ticker定时器教程【详解】
jvm·数据库·python
2501_9142459318 分钟前
如何用 setCustomValidity 自定义表单验证失败的提示文本
jvm·数据库·python
2301_8176722619 分钟前
bootstrap如何修改标签页切换的过渡时间
jvm·数据库·python
zhangchaoxies30 分钟前
JavaScript中Tree-shaking失效的场景及其优化对策
jvm·数据库·python
山峰哥30 分钟前
SQL性能飞跃:从索引策略到查询优化的全链路实战指南
数据库·sql·性能优化·深度优先