【问题标题】:Am I doing this join right? Three way table join我这样做对吗?三向表连接
【发布时间】:2013-08-07 18:11:32
【问题描述】:

我正在尝试按以下格式连接三个表。

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

任何关于我哪里出错的见解将不胜感激。 谢谢!

【问题讨论】:

  • 标题太没意思了,请改正。

标签: sql oracle inner-join


【解决方案1】:

不如试试类似的东西

SELECT *
FROM A INNER JOIN
B ON A.id = B.a_id INNER JOIN
C ON C.id = B.c_id

【讨论】:

    【解决方案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 个表(如where a.id=b.id

    【讨论】:

      【解决方案3】:
      select * 
      from A 
      inner join B on A.id=B.a_id
      inner join C on C.id=B.c_id
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-13
        • 2023-03-19
        • 1970-01-01
        • 2015-01-13
        • 1970-01-01
        • 2015-06-09
        • 2014-06-28
        • 1970-01-01
        相关资源
        最近更新 更多