SQL Server JOIN

本文深入解析了SQL中的JOIN操作,包括INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN的使用方法及实例,帮助读者理解如何有效连接数据库中的不同表格。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

表名:属性表

在这里插入图片描述

表名:属性二表

在这里插入图片描述

JOIN

可通过相同的列名连接两个表
格式

SELECT  表一.列名,表二.列名
FROM  第一个表名
INNER JOIN 第二个表名
ON  表一.相同的列名=表二.相同的列名

例:比较ID

普通的方法:

在这里插入图片描述

用JOIN:

在这里插入图片描述
結果:
在这里插入图片描述

LEFT/RIGHT/FULL JOIN

格式:

SELECT 表一.列名,表二.列名
FROM  第一个表名
LEFT/RIGHT/FULL  JOIN 第二个表名

为了方便比较,在属性表一加入张日

例:比较Name

在这里插入图片描述

LEFT JOIN:

在这里插入图片描述
返回左边一列的。

RIGHT JOIN

在这里插入图片描述
返回右边一列的。

FULL JOIN

在这里插入图片描述
全部返回。

加一个用Name的JOIN:

在这里插入图片描述
結果:
在这里插入图片描述

### SQL Server JOIN 使用教程 #### 1. JOIN 的基本概念 在 SQL Server 中,`JOIN` 是用于组合来自两个或更多表的记录的关键字。通过 `JOIN`,可以从多个表中检索数据并将其合并到单个结果集中。 #### 2. INNER JOIN `INNER JOIN` 返回两个表中满足连接条件的匹配行。这意味着只有当左表和右表都存在符合条件的记录时,才会返回这些记录。 ```sql SELECT A.Uid, B.UName, B.Pwd, B.Age, B.Sex FROM Users A INNER JOIN Users_LianBiao B ON A.Uid = B.Uid; ``` 此查询将返回 `Users` 表和 `Users_LianBiao` 表中 Uid 字段相等的所有记录[^1]。 #### 3. LEFT JOIN (LEFT OUTER JOIN) `LEFT JOIN` 或者称为 `LEFT OUTER JOIN`,会返回左表中的所有记录以及右表中与之匹配的记录;如果没有找到匹配项,则结果集中的对应列包含 NULL 值。 ```sql SELECT A.Uid, B.UName, B.Pwd, B.Age, B.Sex FROM Users A LEFT JOIN Users_LianBiao B ON A.Uid = B.Uid; ``` 这段代码展示了如何从 `Users` 表获取所有的用户信息,并尝试关联 `Users_LianBiao` 表的相关数据。对于那些在 `Users_LianBiao` 中找不到相应用户的行,在最终的结果集中其对应的字段会被设置为空值[^4]。 #### 4. RIGHT JOIN (RIGHT OUTER JOIN) 正如所提到过的,`RIGHT JOIN` 是指返回右边表内的全部资料加上左边表内相符的部分;如果左边不存在相对应的数据则显示为 null。 ```sql SELECT A.Uid, B.UName, B.Pwd, B.Age, B.Sex FROM Users A RIGHT JOIN Users_LianBiao B ON A.Uid = B.Uid; ``` 这里是从 `Users_LianBiao` 获取完整的列表,并试图链接至 `Users` 表里的相关内容。任何无法配对上的项目都会被赋予默认值即null。 #### 5. FULL JOIN (FULL OUTER JOIN) 最后还有 `FULL JOIN` 或全外联接,它结合了 `LEFT JOIN` 和 `RIGHT JOIN` 的特性——既保留左侧也保留右侧不重叠部分的数据,只要有一方有匹配就会出现在结果里,而双方都没有的地方就用 null 来填充。 ```sql SELECT A.Uid, B.UName, B.Pwd, B.Age, B.Sex FROM Users A FULL JOIN Users_LianBiao B ON A.Uid = B.Uid; ``` 这表示无论是在 `Users` 还是 `Users_LianBiao` 中是否有共同键值,都将展示出来,缺失的一侧将以 null 形式呈现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值