我将C表作为主表,将col3上的E表与左表联接在一起,并将col4上的F表与左表联接。
(
FROM A
LEFT OUTER JOIN B ON A.col1 = B.col1
LEFT OUTER JOIN C ON A.col2 = C.col2
LEFT OUTER JOIN E ON A.col3 = E.col3
LEFT OUTER JOIN F ON A.col4 = F.col4
)temptab1
需要退出的人
(
FROM C ON
LEFT OUTER JOIN E ON C.col3 = E.col3
LEFT OUTER JOIN F ON C.col4 = F.col4
)temptab2
现在,我应该在(C.Col3 = temptab2.Col3 OR C.Col4 = temptab2.Col4)
上将temptab1加入temptab2吗?要么
我应该在(C.Col3 = temptab2.Col3 AND C.Col4 = temptab2.Col4)
上将temptab1加入temptab2吗?
如果我必须使用OR子句,这会大大阻碍查询的性能...
我尝试使用联合子句代替OR子句。尽管如此,查询性能仍没有改善...
请提出更好的查询。
答案 0 :(得分:0)
temptab1是A的所有行。temptab2是C的所有行。temptab1是与temptab2的LEFT JOIN,这导致A的所有行。 您可以使用CASE语句来识别A,B,C,D,E,F中的匹配值,并使用temptab2删除Join。 抱歉,无法发表评论...