问题描述
oracle:原:a视图selectstrA1,strA2,strA3fromawherestrA4='aaa'andstrA5='bbb'b视图selectstrB1,strB2frombwherestrB3=strA4andstrB4=strA5andstrB5=strA3andrownum=1c视图selectstrC1fromcwherestrC2=strA4andstrC2=strA5andrownum=1三个视图的关系:a视图:b视图1:na视图:c视图1:nb视图和c视图没关系现要将三张视图合并以a视图为主视图,我的结果selectstrA1,strA2,strA3,strB1,strB2,strC1fromaleftjoinbonstrB3=strA4andstrB4=strA5andstrB5=strA3leftjoinconstrC2=strA4andstrC2=strA5wherestrA4='aaa'andstrA5='bbb'取得结果本应为1条,但得到的结果却为多条,该怎样解决这类问题求大神指点迷津
解决方案
解决方案二:
给出测试数据,没人会根据你乱七八糟的sql语句猜为什么
解决方案三:
很明显限制条件不对,或者是没有去重吧
解决方案四:
selectstrA1,strA2,strA3,strB1,strB2,strC1fromaleftjoinbonstrB3=strA4andstrB4=strA5andstrB5=strA3leftjoinconstrC2=strA4andstrC2=strA5。这段sql查询出的结果有太多strA4='aaa'andstrA5='bbb'的记录。所以你最终where的时候也出现多条记录。把leftjoin的两张表一张张加上去,看看具体哪张表多出了记录,找出原因了