gpt4 book ai didi

sql - 使用 3 列在 2 个表之间进行左连接并连接到 Oracle 上的第三个表

转载 作者:行者123 更新时间:2023-12-04 18:38:33 25 4
gpt4 key购买 nike

我正在使用 Oracle 并且需要基于 3 列离开连接 2 个表(实际上是具有别名的同一个表),然后与第三个表连接。最好的语法应该是什么?

Select table_3.column_x
From (table_1 left join table_2
Using (column_1 , column_2 , column_3)), table_3
Where Table_2.column_1 = table_3.column_1

我应该在“using 语句”上使用“,”还是“AND”?即使在左连接中没有使用 table_3 语句,我究竟应该在哪里插入它?

最佳答案

使用 ANSI SQL:

select * from
TABLE1 "TABLE1"
left join TABLE1 "TABLE2" on(TABLE1.c1 = TABLE2.C1 and TABLE1.c2 = TABLE2.C2)
left join TABLE3 "TABLE3" on(TABLE1.c3 = TABLE3.c3)

使用 Oracle 连接语法,您有:
select * from TABLE1 "TABLE1", TABLE1 "TABLE2", TABLE3 "TABLE3"
where
TABLE1.c1 = TABLE2.c1 (+)
and TABLE1.c2 = TABLE2.c2 (+)
and TABLE1.c3 = TABLE3.c3 (+)

(+) 这里代表左连接。我个人更喜欢 ANSI SQL 方式。对我来说似乎更干净。您的连接谓词可能与我的示例不同,请记住这一点。

关于sql - 使用 3 列在 2 个表之间进行左连接并连接到 Oracle 上的第三个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5529986/

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