sql-Oracle怎样分析多表关联SQL

问题描述

Oracle怎样分析多表关联SQL

两三个表的关联查询还能明白,但是四个以上的关联感觉搞不懂,请问多表关联有什么规律吗?比如

 SELECT * FROM XUTEST LEFT JOIN XUTEST2 LEFT JOIN XUTEST3 ON XUTEST3.SUPID=XUTEST2.SUPID ON XUTEST3.SUPID=XUTEST.SUPID

SELECT * FROM XUTEST LEFT JOIN XUTEST2 ON XUTEST2.SUPID=XUTEST.SUPID  LEFT JOIN XUTEST3 ON XUTEST3.SUPID=XUTEST2.SUPID

有什么不同?该怎么样分析?还有这种写法为什么不对?

 SELECT * FROM XUTEST LEFT JOIN XUTEST2 LEFT JOIN XUTEST3 ON XUTEST.SUPID=XUTEST2.SUPID ON XUTEST3.SUPID=XUTEST.SUPID

解决方案

http://blog.itpub.net/29378313/viewspace-1064069/

时间: 2024-11-03 22:12:21

sql-Oracle怎样分析多表关联SQL的相关文章

sql-oracle 实现多表关联SQL脚本

问题描述 oracle 实现多表关联SQL脚本 A表: XH IDA NAME AGE 1 1 张三 20 2 2 李四 18 3 3 王五 19 4 4 lily 19 B表 XH IDB IDA 1 1 1 2 2 1 3 3 1 4 4 3 5 5 3 6 6 4 7 7 4 C表 XH IDC IDB 1 1 1 2 1 2 3 1 3 4 2 6 5 2 7 A表的IDA与B表的IDA有关系,B表的IDB与C表的IDB有关系 实现效果: XH IDA NAME AGE IDB IDC

MySQL千万级多表关联SQL语句调优

本文不涉及复杂的底层数据结构,通过explain解释SQL,并根据可能出现的情况,来做具体的优化,使千万级表关联查询第一页结果能在2秒内完成(真实业务告警系统优化结果).   需要优化的查询:使用explain      出现了Using temporary:      有分页时出现了Using filesort则表示使用不了索引,需要根据下面的技巧来调整语句      rows过多,或者几乎是全表的记录数:      key 是 (NULL):      possible_keys 出现过多(

求sql-求一个sql,oracle数据库问题

问题描述 求一个sql,oracle数据库问题 A表: id字段 aid字段 10000 99999 10000 88888 10001 77777 10001 66666 B表: did字段 77777 有以上两张表,A表id字段对应多个aid字段.要查询出来A表id字段,并且对应的所有aid字段都不在B表中.以上情况要求查询出10000. 求大神指点,谢谢. 解决方案 select id from A where id not in(select t.id from A t,B s wher

优化SQL查询:如何写出高性能SQL语句

1. 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化器会选择"索引查找"方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用 "全表扫描"方式. 可见,执行计划并不是固定的,它是"个性化的".产生一个正确的"执行计划"有两点很重要:

sql oracle数据库关联表查询

问题描述 sql oracle数据库关联表查询 现在有一个教师表(教师号 教师名) 课程号(教师号 课程号 课程名) 教室表(教师号 课程号 教室号 教室名) 想显示所有教室的教师名和课程名. 就是想问这种关联的查询语句 排除表中一些矛盾的存在哈 谢谢 解决方案 select b.教师名,c.课程名 from 教室表 a LEFT JOIN 教师表 b ON a.教师号=b.教师号 LEFT JOIN 课程表 c ON 教师表 b ON a.教师号=c.教师号 这个才是对的,刚刚没看清楚写错了.

Oracle\MS SQL Server Update多表关联更新

原文:Oracle\MS SQL Server Update多表关联更新 一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据.我们先来讨论根据其他表数据更新你要更新的表   一.MS    SQL    Server   多表关联更新      sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来.虽然只能对一个表进行更新,但是通过将要更新的表与其它的数据源连接起来,就

oracle语句-有关两张表关联查询的sql问题

问题描述 有关两张表关联查询的sql问题 各位大神,一个sql问题请教下 有两张表,分别如下: 充值表t_recharge字段: userId.recharge_money.recharge_count 消费表t_consume字段: userId.consume_money.consume_count 现在的情况是用户可能只存在充值记录或者只存在消费记录,只存在充值记录时,消费记录显示0,只存在消费记录时,充值记录显示0 现在想查出这种结果: userId recharge_money rec

Oracle数据库的SQL性能问题分析

在Oracle 10.2.0.4数据库中,有一个SQL执行缓慢,超过数分钟无结果,等待事件又是空闲的 SQL*Net message事件,最后只好强行中断. 这个SQL是一个普通的UPDATE语句,where子句中多张表 关联,关联的表都是临时表. update t_fund_product_info set is_valid = 'N' where prdt_id not in (select a.prdt_id from tmp_crm_DX_PRDT_FOR_INFO a, tmp_crm

通过图表简化sql语句的表关联

在之前的博文中分享过一个执行了两天的一条sql语句,走了两个大表的扫描,导致执行时间很长,通过简化sql做了不小的改进,今天我们来看看还可以做些什么. 上次简化后的语句如下:with tmp_logical_date as (SELECT logical_date                  FROM logical_date                 WHERE logical_date_type = 'R'                   AND expiration_dat