为什么这不适用于Oracle?
有没有办法让这项工作?
FROM table1 a,
table2 b,
table3 c
WHERE a.some_id = '10'
AND a.other_id (+)= b.other_id
AND a.other_id (+)= c.other_id
Run Code Online (Sandbox Code Playgroud)
我希望table1在多个表格上留下外部联系......
如果我尝试将其更改为使用ANSI连接,则会出现编译错误.我做了以下事情:
FROM table2 b, table3 c
LEFT JOIN table1 a ON a.other_id = b.other_id and a.other_id = c.other_id
Run Code Online (Sandbox Code Playgroud)
好的,看看Oracle文档中的示例,我对语法的回忆是正确的,所以我将我的评论转化为答案.假设您的目标是左外连接,其中A是基表,并且您连接来自B和C的匹配行,请按如下方式重写您的查询(请注意,我只是更改前缀;我希望将源行设置为正确的).
FROM table1 a,
table2 b,
table3 c
WHERE a.some_id = '10'
AND b.other_id (+)= a.other_id
AND c.other_id (+)= a.other_id
Run Code Online (Sandbox Code Playgroud)
如果那不是你想要做的,那么查询就是borked:你正在进行B和C的笛卡尔连接,然后尝试从该部分结果到A的外连接,在A上有一个额外的谓词.没有多大意义.
| 归档时间: |
|
| 查看次数: |
11756 次 |
| 最近记录: |