0

我有两张大桌子:

A: (ID1,VAR1);
B: (ID1,ID2,VAR2)

第三张表:

C: (ID2...)

我只想为具有 C 值的记录合并 A 和 B。

以下是我使用“IN”的想法。有没有更有效的方法来做到这一点?有时我发现“IN”不太好用。

非常感谢!

select  A.VAR1,B.VAR2
from A 
INNER JOIN 
(
  select ID1,VAR2
  from B
  where ID2 in
                (select distinct ID2
                 from C
                )
) D
on A.ID1=D.ID1
4

2 回答 2

1
select A.VAR1, B.VAR2 
from A 
INNER JOIN B on A.ID1 = B.ID1 
INNER JOIN C on B.ID2 = C.ID2
于 2012-08-08T16:46:44.627 回答
0

无需使用子查询,您只需JOIN对所有表执行 a :

SELECT A.VAR1, B.VAR2
FROM A 
INNER JOIN B
    ON A.id1 = b.id1
INNER join
(
    SELECT DISTINCT id2
    FROM c
) c1
    ON b.id2 = c1.id2
于 2012-08-08T16:48:51.700 回答