`
谷超
  • 浏览: 163074 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • DB
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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics