`
谷超
  • 浏览: 166326 次
  • 性别: 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
分享到:
评论

相关推荐

    SQL语句查询性能优化[借鉴].pdf

    2. 用 EXISTS 替代 IN,在许多基于基础表的查询中,为了满足一个条件往往需要对另一个表进行联接,例如在 ETL 过程写数据到模型时经常需要关联 10 个左右的维表,从 ORACLE 执行的步骤来分析用 IN 的语句。...

    SQL 优化原则

     在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前...

    SQL中exists的使用方法

    总之,`EXISTS` 是 SQL 中一种强大的工具,用于检查数据的存在性,特别是在处理关联查询和复杂条件时,它提供了更多的灵活性和控制力。了解何时使用 `EXISTS`、`IN` 或 `NOT EXISTS` 可以帮助写出更高效、更清晰的 ...

    解决mybatis使用char类型字段查询oracle数据库时结果返回null问题

    在Mapper文件中,查询sql语句需要使用trim()函数来去掉char类型字段的空格。例如:<select id="selectByName" resultType="com.entity.Data" parameterType="java.lang.String"> select * from data where trim(data...

    PL/SQL 插件 CnPlugin

    - **查询工具**:内置强大的 SQL 查询工具,支持多窗口同时执行查询,结果可导出为多种格式。 - **版本控制集成**:与常见的版本控制系统(如 SVN、Git)集成,方便代码版本管理。 **3. CnPlugin 版本 1.5.4 的...

    ABAP读数据

    `DB_TABLES`和`DB_FIELDS`可以用于获取这些元数据,帮助我们构建动态SQL语句。 6. **激活和使用数据字典对象**:在ABAP编程中,数据字典是关键,因为它定义了数据库表的结构和关联。第四章“数据字典和数据表的读取...

    实战:上亿数据如何秒查

    近在忙着优化集团公司的一个报表。优化完成后,报表查询速度有从半小时以上(甚至查不出)到秒查的质变。从修改SQL查询语句逻辑到决定创建...  不多说,直接贴西门子中国的开发人员在我司开发的SSRS报表中的SQL语句:

    03开源NewSql数据库TiDB-Deep Dive into TiDB

    但是还不够完善,在 2.0 版本中,一方面优化统计信息的精确度以及更新及时程度,另一方面提升 SQL 优化器的能力,对查询代价的估算更加精准、对复杂过滤条件的分析更加细致、对关联子查询的处理更加优雅、对物理算子...

    云数据库自治服务最佳实践.pptx

    DBbrain可以对实例中的SQL记录和执行信息进行统计、抽样、聚合,针对聚合后的SQL语句、执行计划、综合资源消耗、扫描和返回集合大小、索引使用合理性等,对慢SQL的性能进行分析,并给出优化建议。 此外,DBbrain还...

    大数据量高并发的数据库优化详解

    对于多表之间的关联查询,需要折衷考虑,根据业务规则确定对关联表的数据量大小、数据项的访问频度。 在表的设计中,需要注意以下几个问题: * 数据行的长度不要超过8020字节,否则会占用两行,从而造成存储碎片,...

    spring boot+shiro+mybatis实现不同用户登录显示不同的权限菜单

    通过Mapper接口,开发者可以方便地定义SQL语句,提高代码的可读性和维护性。 **实现步骤** 1. **配置Shiro**:首先需要在Spring Boot的配置文件中引入Shiro的相关配置,包括 Realm(自定义的权限认证类),以及过滤...

    易语言程序免安装版下载

    修改外部数据库在4.12版中导致的不兼容问题,并增加了对MS SQL Server数据库中image和text字段类型的说明。 7. 修改扩展界面支持库一,禁止透明标签在父窗口刷新时自动刷新,以解决其导致窗口刷新缓冲的问题。 8....

    文章管理系统

    2.[*修复]修复前台存在的SQL注入风险漏洞【感谢乌云[语邑尘]发现】 3.[*修复]修复前台存在的xss跨站脚本攻击漏洞【感谢乌云[evil]发现】 4.[修复]修复内容页投票区域部分浏览器不会居中BUG 5.加强前台提交表单信息的...

    Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好

    这样,因为w 是在if 语句里定义的,所以当if 语句执行完后它就无效了。这样 导致的后果就是,按下enterBtn 后,主界面窗口一闪就没了。如果此时对程序 改动了,再次点击运行时,就会出现error: collect2: ld ...

Global site tag (gtag.js) - Google Analytics