首页 > 数据库 >SQL-三张表关联查询(INNER JOIN)

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

时间:2023-08-15 10:25:39浏览次数:32  
标签:JOIN -- SQL 关联 INNER 表中 TB select

使用场景】:
现有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

标签:JOIN,--,SQL,关联,INNER,表中,TB,select
From: https://www.cnblogs.com/madvivi/p/17630608.html

相关文章

  • 使用Logstash同步Mysql到Easysearch
    从Mysql同步数据到ES有多种方案,这次我们使用ELK技术栈中的Logstash来将数据从Mysql同步到Easysearch。方案前提Mysql表记录必须有主键,比如id字段。通过该字段,可将Easysearch索引数据与Mysql表数据形成一对一映射关系,支持修改。Mysql表记录必须有时间字段,......
  • MySQL 执行计划详解
    1.EXPLAIN详解本文基于MySQL8.0编写,理论支持MySQL5.0及更高版本。2.EXPLAIN使用2.1explain分析SQL的执行计划{EXPLAIN|DESCRIBE|DESC}tbl_name[col_name|wild]{EXPLAIN|DESCRIBE|DESC}[explain_type]{explainable_stmt|FORCONNECTIONconne......
  • Nacos2 + Mysql8 作为数据源的建表语句
    在MySQL中创建nacos用户,MySQL创建名为Nacos的Schema,并授权nacos用户可以访问。语句如下:mysql>createuser'nacos'@'%'identifiedby'password';mysql>createschemanacos;mysql>grantALLonnacos.*to'nacos'@'%';或者直接新建一个n......
  • 使用Logstash同步Mysql到Easysearch
    从Mysql同步数据到ES有多种方案,这次我们使用ELK技术栈中的Logstash来将数据从Mysql同步到Easysearch。方案前提Mysql表记录必须有主键,比如id字段。通过该字段,可将Easysearch索引数据与Mysql表数据形成一对一映射关系,支持修改。Mysql表记录必须有时间字段,以支持......
  • burpsuite靶场----SQL注入1----where注入
    burpsuite靶场----SQL注入1----where注入靶场链接https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data推荐burpsuite插件xiasql插件https://github.com/smxiazi/xia_sql正式开始1.先随便点个商品的viewdetails2.在productid处可能存在数字......
  • SQL: 打印存储过程
    打印SAPbusinessone 9.2 存储过程代码  useSAPB1--SAPBUSINESSONE9.2GODECLAREC_SPCURSORFORSELECTOBJ.NAMEASSTORE_PROCEDURE,CASEWHENRS.DEFINITIONISNULLTHENN'加密'ELSEN'未加密'ENDAS[IS_ENCRYPT],......
  • mysql添加索引的方法(Navicat可视化加索引和sql语句加索引)
    mysql添加索引的方法(Navicat可视化加索引和sql语句加索引) 使用索引的场景:阿里云日志里出现了慢sql 然后发现publish_works_id字段会经常用于一些关联,所以决定把这个字段加上索引,优化sql可视化navicat操作字段加索引,选择字段所在的表,第一步:右键->设计表第二步......
  • Zabbix监控Mysql主从
    一、主机规划服务器IPzabbix-server192.168.131.12mysql-master,zabbix-agent192.168.131.13mysql-slave,zabbix-agent192.168.131.14二、部署&配置zabbix-server2.1部署zabbix#安装Zabbix仓库。这里部署zabbix6.4wgethttps://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabb......
  • Mysql配置文件设置与了解
    [client]port=3306[mysql]default-character-set=gbk[mysqld]port=3306socket=/tmp/mysql.sock#设置mysql的安装目录basedir=F:\\HzqSoft\\MySqlServer51GA#设置mysql数据库的数据的存放目录,必须是data,或者是\\xxx-datadatadir=F:\\HzqSoft\\MyS......
  • WEEK08:MYSQL备份及恢复
    ......