gpt4 book ai didi

sql - 如何将隐式连接重写为显式连接?

转载 作者:行者123 更新时间:2023-12-04 18:45:08 29 4
gpt4 key购买 nike

我在使用显式连接重写这​​些 JOINS 时遇到了一些问题。我试图了解这是如何完成的。这是使用我继承的隐式连接的原始查询:

FROM prod.f31122 t,
prod.f4801 wo,
prod.f30008 r,
prod.f0101 ab
WHERE t.wtdoco = wo.wadoco(+)
and t.wtmmcu = wo.wammcu(+)
and t.wtmmcu = r.iwmcu
and t.wtan8 = ab.aban8

我已经尝试了以下方法,但我得到了不同的结果集。计数相同,但结果集不正确(可能是我的分组没有显示的问题)。这是我使用显式连接的翻译:

FROM prod.f31122 t      
JOIN prod.f4801 wo ON t.wtdoco = wo.wadoco
JOIN prod.f4801 wo ON wo.wammcu = t.wtmmcu
JOIN prod.f30008 r ON t.wtmmcu = r.iwmcu
JOIN prod.f0101 ab ON t.wtan8 = ab.aban8

我只是想确保我从隐式连接到显式连接的转换在逻辑上是正确的(为了我的教育和理解)。作为记录,我可以保留隐式连接,但我只是想更好地理解这个过程。

最佳答案

FROM prod.f31122 t      
LEFT JOIN prod.f4801 wo ON t.wtdoco = wo.wadoco AND wo.wammcu = t.wtmmcu
JOIN prod.f30008 r ON t.wtmmcu = r.iwmcu
JOIN prod.f0101 ab ON t.wtan8 = ab.aban8

你只连接到wo一次,两个连接条件出现在同一个ON子句中,它们之间有逻辑运算符AND .

LEFT JOIN也可以写成LEFT OUTER JOINJOIN可以写成INNER JOIN .我更喜欢这些较长的短语,因为它们更明确。

关于sql - 如何将隐式连接重写为显式连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52205258/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com