我这样做是对吗?三通表加入

时间:2013-08-07 18:11:33

标签: sql oracle inner-join

我试图以下列格式加入三个表。

select * 
from A 
inner join
B (inner join (C on C.id=B.c_id))

on A.id=B.a_id;

我从未使用查找表来执行连接(在本例中为B)。

Oracle抛出错误说

ORA-00905: missing keyword
00905. 00000 -  "missing keyword"
*Cause:    
*Action:
Error at Line: 6 Column: 11

任何有关我出错的地方的见解都将受到赞赏。 谢谢!

3 个答案:

答案 0 :(得分:2)

而是尝试像

这样的东西
SELECT *
FROM A INNER JOIN
B ON A.id = B.a_id INNER JOIN
C ON C.id = B.c_id

答案 1 :(得分:2)

应该这样写,更清楚:

select * 
from A 
inner join B on A.id=b.a_id 
inner join C on C.id=B.c_id

您可以看到它如何显示您的语句的意图(join子句非常明确地表示您希望如何连接表)通过在where子句中表达连接条件来连接2个表(如{{1}中所示) })

答案 2 :(得分:1)

select * 
from A 
inner join B on A.id=B.a_id
inner join C on C.id=B.c_id