SQL-三张表关联查询(INNER JOIN)

发布时间 2023-08-15 10:17:53作者: madvivi

使用场景】:
现有A\B\C 三张表,现在要查询并展示A表和C表中的某些字段,但是A、C两表没有相同字段,无法关联,此时有B表恰好有两个字段,一个字段和A表一个字段相同,一个字段和C表一个字段相同,我们称B表为“中间表”,因此通过B表把A、C表关联起来

方法一(推荐):
SELECT A1,A2,C1,C2 --展示A表中的A1\A2字段和C表中的C1\C2
FROM B --中间表
INNER JOIN A ON A.A1 = B.B1 --A表中的与B表中相同的字段
INNER JOIN C ON C.C1 = B.B1 --C表中的与B表中相同的字段
where xxxxx ---条件你自己按照需求来加,没有条件就不写where了

例如 :

select TB_BJXXB.BJMC,TB_BJZCWZB.ZCWZMC from TB_BJKCB inner join TB_BJXXB on (TB_BJXXB.BJDH = TB_BJKCB.BJDH)
inner join TB_BJZCWZB ON (TB_BJKCB.ZCWZDH=TB_BJZCWZB.ZCWZDH)

 

方法二(有点笨,但也好用,写子查询)
原理:两两关联,在关联第三张表
select C.C1,C.C2,D.* --打印出C表的C1,C2字段和D表中的select 后面的字段,即A1,A2,A3,B1,B2,B3
from C, (select A1,A2,A3,B1,B2,B3 from A,B ) D --先把A,B两张表关联起来,命名为D表,再与C表关联,注意,A,B表关联时一定要记得打印出B表中与C表相同的字段
where xxxxx ---条件你自己按照需求来加,没有条件就不写where了


口径理解记忆方法:
1、首选找出“中间表”
2、select * from :固定格式照写,select后面跟你要打印的表的字段,from后面跟中间表
3、接着写两个 INNER JOIN A ON ,"A"替换成另外两张表,两个ON 后跟中间表与刚替换A时用的表,相同字段关联起来。
4、有判断条件的加where,后跟判断条件,没有就不写,至此完毕。
————————————————
版权声明:本文为CSDN博主「cary_dan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43620686/article/details/112766437