多表关联的SQL语句查询不出结果的原因分析

如果大家有人在做数据分析和数据维护时,可能会使用到多表关联的查询语句,这样复杂的SQL语句查询不出结果会很让大家头疼,如何能够快速准确地找到哪个表或者哪个字段出现的问题,导致整个SQL语句查询不出结果。

本文章向大家介绍写自己的心得,帮助大家轻松、快速地找出问题所在!

 

D
|
A-B-F              A-B-C-D-E-F
|                      图2
C                    
|
E
图1

 

例如下面的SQL语句

 

select A.*,B.*,C.* from A,B,C,D,E,F where A=B and A=C and A=D and C=E and B=F and A.field1='field1' and A.field2='field2' and     B.field='bfield' and C.field='cfield'

A=B代表A、B关联,其它的同理

 

分析步骤:
1.首先去掉所有的字段的查询条件,去掉A.field1='field1'等,查看整个关联是否是通的,是否能查询出数据
2.如果不是通的(查询出结果为空),则要找出哪两个表没有关联上,如果是通的(能够查询出结果),在多表关联中,一般都会有一个主表,其他表都与该表有直接或间接的关联(即A、C直接关联,A、E间接关联),如果存在主表的查询条件,如A.field1='field1',则从A表开始入手,根据关联查询B,C,D表,并逐个查看其他表的查询条件是否符合,直至找到不符合的地方,找到问题之所在!如果并没有图1中的主表A,而是图2这样的情况,可以从链条的某个节点出发,同样根据关联关系,查看其它的表是否符合条件,直至找到问题所在!

 

不同人会有不同的方法,但我个人认为上面的方法会更加快速的,条理清晰的找到问题的所在!希望大家在分析数据时有所帮助!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值