陷入疑问。甚至不知道应该叫什么...它是一个共同相关的子查询吗?

时间:2014-01-09 11:49:34

标签: sql oracle

在回答之前先仔细查看查询。

我在子查询中得到错误,我从外部查询访问该列。 在 C1.C_ID = a.C_ID

SELECT
        COL_ANY,
        COL_ANY1,
        COL_ANY2

FROM A  a
INNER JOIN B b ON a.B_ID = b.B_ID
WHERE
 a.C_ID =  (SELECT  c.C_ID FROM C c 
    INNER JOIN C C1 ON C1.C_ID = a.C_ID)

1 个答案:

答案 0 :(得分:0)

假设我理解你要做的事情(如果你在你的问题中解释了这会很有帮助) - 你想从A获得C中存在的所有行{{1} }

在这种情况下你可以这样做:

SELECT
    COL_ANY,
    COL_ANY1,
    COL_ANY2
FROM A  a
INNER JOIN B b ON a.B_ID = b.B_ID
WHERE
 a.C_ID IN (SELECT c.C_ID FROM C)

或者可能更好,只需加入C

SELECT
    COL_ANY,
    COL_ANY1,
    COL_ANY2
FROM A  a
INNER JOIN B b ON a.B_ID = b.B_ID
INNER JOIN C b ON a.C_ID = C.C_ID