将多个oracle连接转换为多个ANSI连接

问题描述 投票:0回答:1

使用此工具:http://107.170.101.241:8080/joinConverter/

我看到一个简单的Oracle联接是从以下位置转换的:

 SELECT *
     FROM Table1 t1,
          Table2 t2
    WHERE t1.id = t2.id

到ANSI连接:

SELECT *
     FROM Table1 t1
inner join Table2 t2 on t1.id = t2.id

但是,对于像这样的更复杂的查询,它会出错:

SELECT *
 FROM Table1 t1,
      Table2 t2,
      Table3 t3
WHERE t2.id = t3.id
  AND t1.account_id = 5
  AND t2.coord in (t1.w, t1.x, t1.y, t1.z)
  AND t3.num IS NOT NULL

我收到错误:

Error 1, Message: This table has no join condition: Table2
Error 2, Message: This table has no join condition: Table3

我该如何解决?使用什么合适的ANSI语法?

sql oracle ansi
1个回答
0
投票

语法是:

SELECT *
FROM Table1 t1 JOIN
     Table2 t2
     ON t2.coord IN (t1.w, t1.x, t1.y, t1.z) JOIN
     Table3 t3
     ON t2.id = t3.id
WHERE t1.account_id = 5
      t3.num IS NOT NULL
© www.soinside.com 2019 - 2024. All rights reserved.