当前位置: 首页 > news >正文

SQL server 内连接 左连接 右连接 全连接 语句

在SQL Server中,连接(JOIN)操作用于从两个或多个表中检索相关数据。内连接、左连接、右连接和全连接是最常用的几种连接类型。下面详细介绍每种连接的用法和区别:

1. 内连接 (INNER JOIN)

内连接只返回两个表中满足连接条件的匹配行。如果某一行在其中一个表中没有匹配项,则该行不会出现在结果集中。

 

sqlCopy Code

SELECT A.列名, B.列名 FROM 表A A INNER JOIN 表B B ON A.共同列 = B.共同列;

2. 左连接 (LEFT JOIN 或 LEFT OUTER JOIN)

左连接会返回左表中的所有行以及右表中满足连接条件的匹配行。即使右表中没有匹配项,左表的行也会包括在结果集中,未匹配的右表列会显示为NULL。

 

sqlCopy Code

SELECT A.列名, B.列名 FROM 表A A LEFT JOIN 表B B ON A.共同列 = B.共同列;

3. 右连接 (RIGHT JOIN 或 RIGHT OUTER JOIN)

右连接返回右表中的所有行以及左表中满足连接条件的匹配行。即使左表中没有匹配项,右表的行也会包括在结果集中,未匹配的左表列会显示为NULL。

 

sqlCopy Code

SELECT A.列名, B.列名 FROM 表A A RIGHT JOIN 表B B ON A.共同列 = B.共同列;

4. 全连接 (FULL JOIN 或 FULL OUTER JOIN)

全连接返回两个表中的所有行。不论在另一表中是否有匹配项,两表的所有行都会包含在结果集中。未匹配的列会显示为NULL。

 

sqlCopy Code

SELECT A.列名, B.列名 FROM 表A A FULL JOIN 表B B ON A.共同列 = B.共同列;

示例说明

假设有两个表:EmployeesDepartments

Employees:

EmployeeIDEmployeeNameDepartmentID
1Alice10
2Bob20
3Charlie30

Departments:

DepartmentIDDepartmentName
10HR
20IT
40Admin
内连接示例:
 

sqlCopy Code

SELECT Employees.EmployeeName, Departments.DepartmentName FROM Employees INNER JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

结果:

EmployeeNameDepartmentName
AliceHR
BobIT
左连接示例:
 

sqlCopy Code

SELECT Employees.EmployeeName, Departments.DepartmentName FROM Employees LEFT JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

结果:

EmployeeNameDepartmentName
AliceHR
BobIT
CharlieNULL
右连接示例:
 

sqlCopy Code

SELECT Employees.EmployeeName, Departments.DepartmentName FROM Employees RIGHT JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

结果:

EmployeeNameDepartmentName
AliceHR
BobIT
NULLAdmin
全连接示例:
 

sqlCopy Code

SELECT Employees.EmployeeName, Departments.DepartmentName FROM Employees FULL JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

结果:

EmployeeNameDepartmentName
AliceHR
BobIT
CharlieNULL
NULLAdmin

这些示例展示了不同类型连接的行为和返回结果。根据具体需求选择合适的连接类型,可以有效地从数据库中获取所需的信息。

http://www.lryc.cn/news/374789.html

相关文章:

  • k8s中的pod域名解析失败定位案例
  • jingxiang制作
  • 【数据结构】线性表之《顺序表》超详细实现
  • 开源模型应用落地-音乐生成模型-suno/bark深度使用-AIGC应用探索(六)
  • 为何选择Xinstall?告别邀请码,让App推广更便捷!
  • JavaScript基础入门
  • windows11子系统Ubuntu 22.04.4子安装图形化界面
  • 对 2024 年美赛选题的建议
  • PyTorch tutorials:快速学会使用PyTorch
  • 【CT】LeetCode手撕—手撕快排
  • 使用ARK工具ATool清除典型蠕虫MyDoom
  • 在hue中使用ooize调度ssh任务无法执行成功,无法查看错误
  • 一套轻量、安全的问卷系统基座,提供面向个人和企业的一站式产品级解决方案
  • 3秒生成!这个AI模型画风也太治愈了,新手也能轻松驾驭
  • 数字人全拆解:如何构建一个基于大模型的实时对话3D数字人?
  • 实战 | 基于YOLOv10的车辆追踪与测速实战【附源码+步骤详解】
  • 2024北京智源大会
  • youlai-boot项目的学习—本地数据库安装与配置
  • Android平台如何实现多路低延迟RTSP|RTMP播放?
  • 深入探索Java开发世界:Java基础~类型分析大揭秘
  • 短URL服务设计
  • Kafka集成flume
  • 如何让视频有高级感 高级感视频制作方法 高级感视频怎么剪 会声会影视频剪辑制作教程 会声会影中文免费下载
  • 详解|访问学者申请被拒原因有哪些?
  • [鹤城杯 2021]BabyRSA
  • 西安市工业倍增引导基金子基金申报条件流程和材料程序指南(2024年)
  • 微型丝杆的耐用性和延长使用寿命的关键因素!
  • 音频文件下载后,如何轻松转换格式?
  • Intel平台,13600KF+3060Ti,虚拟机安装macOS 14(2024年6月)
  • Cookie、Session、Token的关系和区别