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;
相关推荐
qq21084629537 小时前
【数据库】TDengine 清理旧数据
数据库·oracle·tdengine
j_xxx404_7 小时前
MySQL表操作硬核解析:从 CREATE TABLE 到磁盘文件、ALTER TABLE 与 DDL 风险
运维·服务器·数据库·c++·mysql·adb·ai
持敬chijing7 小时前
Web渗透之SQL注入-二次注入(Second-Order SQL Injection)
sql·安全·web安全·网络安全·网络攻击模型·安全威胁分析
数据库小学妹7 小时前
PostgreSQL迁移到国产数据库怎么做?评估、改造、上线全流程实操指南
数据库·经验分享·postgresql·dba
x***r1517 小时前
Redis Desktop Manager 0.8.8 安装教程(Windows redis-desktop-manager-0.8.8.384详细步骤)
数据库·windows·redis
initialize13067 小时前
Postgresql(Oracle兼容) 到Oracle19.9字符语义
数据库·oracle
稷下元歌8 小时前
七天学会plc 加机器视觉完整笔记:S7-1200 数据类型、存储区与寻址方式(I/Q/M/DB 详解)。
网络·数据库·笔记
潮起鲸落入海8 小时前
mysql 5.x源码安装
数据库·mysql
睡不醒男孩0308238 小时前
第一篇:多云与多模态时代的企业级数据库云管理平台(DBaaS)选型指南
数据库·clup·中启乘数
小二·9 小时前
向量数据库实战
数据库