Join多表连接

Join多表连接

文献种类:专题技术文献;
开发工具与关键技术:VS
作者:卢媛媛;
撰写时间:2019/04/21

先用文字来捋一下思路,数据库操作中无非就是「 增删查改 」,其中「 查」用得最多且最复杂,变化多端。查询的时候,我们可以只是单表查询,也可以是多表连接查询,单表查询中的学问也很大,但限于篇幅,本次主要分享多表连接查询,也就是各种各样的连接(JOIN)。

SqL join用于根据两个或多个表中的列之间的关系,从而得到想要的数据

看到join 我们第一想到就为联表查询,但是join 也分很多种,每一个join 都有着不同的书写方法和执行效果,那么在满足条件下可根据实际情况做出不同的选择;
2. Join 分为几种连接呢?
① Inner join(内连接) 指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。
Inner join 的用法:inner join为等值连接,只返回两个及多个表中的联结字段相等的值。
Select *
from ((表1 inner join 表2 on 表1.字段号=表2.字段号)
Inner join 表3 on 表1.字段号=表3.字段号 )
以此类推即可
在这里插入图片描述
如图所示举简单的例子表A(“1 2 3 4 5 6”)与表B(“0 2 3 5 7 8”)连接使用 inner join 查询出来的数据为”2 3 5”; 在数学当中为A∩B=(2 3 5)
Left join (左连接) 左边的表数据行全部保留,右边的表保留符合连接条件的行。
Slect * 注释:*为通配符
Left join( select 表1.表1ID from 表1
Join 表2 on 表1.ID = 表2. 表1ID
Join 表3 on 表2.ID = 表3. 表2ID)
以此类推即可
在这里插入图片描述
表A(“1 2 3 4 5 6”)与表B(“0 2 3 5 7 8”) 连接使用left join 查询出来的数据为”1 4 6 ”;
 Right join (右连接)右边的表数据行全部保留,左边的表保留符合连接条件的行。与左连接相反;
 Slect * 注释:*为通配符
 right join( select 表1.表1ID from 表1
 Join 表2 on 表1.ID = 表2. 表1ID
 Join 表3 on 表2.ID = 表3. 表2ID)
 主要与左连接相反;right join 查询出来的数据为”0 7 8 ”;
 Outer join (外连接) 连接结果不仅包含了符合连接条件的行同时也包含了不符合连接条件的行,包括左外连接,右外连接,和全外连接 外连接一般情况下使用少;但也可以使用,只是用法不同结果不同使用方法:如果对C#当中的写法比较生疏那么我们可以打开SQL数据库 在编辑器中设计查询。只简单的使用两张表(一张文件表和权限表)
 在这里插入图片描述
 从图中我们可以看到这两张表毫无关联,当中的字段也并没有可以连接的但是我们可以使用外连接
 在这里插入图片描述
 右键选择下方出现已经编辑后的代码
 SELECT *FROM PW_File OUTER JOIN
  PW_Jurisdiction ON PW_File.FileTypeID = PW_Jurisdiction.UserTypeID
在这里插入图片描述
在文件表和权限表的字段都具备了 在数学当中为A∪B=(0 1 2 3 4 5 6 7 8);
在这里插入图片描述
join连接各有各的优点,根据需求使用即可;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
连接查询可以使用INNER JOIN关键字来实现。在查询语句中,需要连接多个,并确定连接条件。连接条件通常是两个之间的主键和外键的对应关系。同时,可以在WHERE子句中添加其他查询条件来筛选结果。 例如,如果我们有三个A、B和C,需要连接它们并查询学号为"张一"的记录,可以使用以下语法: SELECT 字段 FROM A INNER JOIN B ON A.学号 = B.学号 INNER JOIN C ON B.课程号 = C.课程号 WHERE A.姓名 = "张一"; 在这个例子中,我们使用INNER JOIN关键字连接了三个A、B和C,分别通过学号和课程号进行连接。然后,在WHERE子句中添加了一个条件,筛选出姓名为"张一"的记录。 需要注意的是,INNER JOIN可以简写为JOIN,它们是等价的。内连接查询可以帮助我们从多个中获取相关的数据。 #### 引用[.reference_title] - *1* *2* [SQL数据库语言基础之SqlServer多连接查询与INNER JOIN连接查询](https://blog.csdn.net/Viewinfinitely/article/details/121451783)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [017 INNER JOIN ON 多连接查询语句](https://blog.csdn.net/test253506088/article/details/116504330)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值