关于sql的问题

liuxin413026 2015-02-03 04:50:10
oracle:
原:
a视图
select strA1,strA2,strA3 from a where strA4= 'aaa' and strA5='bbb'
b视图
select strB1,strB2 from b where strB3=strA4 and strB4=strA5 and strB5=strA3 and rownum=1
c视图
select strC1 from c where strC2=strA4 and strC2=strA5 and rownum=1

三个视图的关系:
a视图:b视图 1:n
a视图:c视图 1:n
b视图和c视图没关系
现要将三张视图合并以a视图为主视图,
我的结果
select strA1,strA2,strA3 ,strB1,strB2,strC1
from a left join b on strB3=strA4 and strB4=strA5 and strB5=strA3
left join c on strC2=strA4 and strC2=strA5
where strA4= 'aaa' and strA5='bbb'
取得结果本应为1条,但得到的结果却为多条,该怎样解决这类问题
求大神指点迷津
...全文
729 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
select strA1,strA2,strA3 ,strB1,strB2,strC1 from a left join b on strB3=strA4 and strB4=strA5 and strB5=strA3 left join c on strC2=strA4 and strC2=strA5 。 这段sql查询出的结果有太多 strA4= 'aaa' and strA5='bbb' 的记录。所以你最终where的时候也出现多条记录。 把left join 的两张表一张张加上去,看看具体哪张表多出了记录,找出原因了
有问又问 2015-04-14
  • 打赏
  • 举报
回复
很明显限制条件不对,或者是没有去重吧
於黾 2015-02-03
  • 打赏
  • 举报
回复
给出测试数据,没人会根据你乱七八糟的sql语句猜为什么
通过慢sql分析的学习,了解什么是慢sql,以及慢SQL会引起那些性能问题。清楚慢sql日志的设置,然后再通过慢sql分析工具的学习,清楚慢sql分析的步骤和流程。慢sql分析工具:mysqldumpslow工具、explain工具、profile工具、Optimizer Trace工具。 提供课程中所使用的sql语句。 课程内容:第一章:课程简介1、课程介绍2、课程大纲 第二章:慢sql简介1、慢sql简介2、慢sql会引起的问题 第三章:慢日志的设置1、慢sql的分析流程2、慢日志参数理解3、慢日志参数设置:第1种方式:my.ini文件设置4、慢日志参数设置:第2种方式:sql脚本设置5、慢日志参数设置-效果验证 第四章:如何发现慢sql1、如何发现慢sql:第1种方式:慢日志文件2、如何发现慢sql:第2种方式:mysql库的slow_log表 第五章:慢sql分析工具1、慢sql提取-mysqldumpslow工具-使用方法2、慢sql提取-mysqldumpslow工具-操作实战3、慢sql的执行计划分析-explain分析-执行计划结果说明4、慢sql的执行计划分析-explain分析-索引介绍+type类型举例5、慢sql的资源开销分析-profile分析-分析步骤6、慢sql的资源开销分析-profile分析-show profile执行阶段说明7、慢sql的资源开销分析-profile分析-完整列表说明+操作实战8、慢sql的跟踪分析-Optimizer Trace分析-分析步骤9、慢sql的跟踪分析-Optimizer Trace表的介绍10、索引失效场景举例 第六章:慢日志清理1、慢日志清理

13,347

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET技术前瞻
社区管理员
  • .NET技术前瞻社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧