1

我有以下表格:

T1    T2           T3    T4
ID    ID A B C     ID    
---   --------     ---   ---
1     3  u v w      3
2     4  x y z      4

首先,我必须从 B 中选择具有从 C 检索到的 ID 的项目,如下所示:

SELECT a,b,c FROM T2 WHERE ID IN (SELECT ID FROM T3)

--will return u,v,w
              x,y,z

现在我想检索 T1 中的 ID,并将它们与从上述查询返回的每一行合并,然后将它们插入 T4:

   1   u v w
   1   x y z
   2   u v w
   2   x y z
4

2 回答 2

2

将选项与 CROSS JOIN 一起使用

INSERT T4(ID, A, B, C)
SELECT t1.ID, o.A, o.B, o.C
FROM T1 t1 CROSS JOIN (
                       SELECT a,b,c 
                       FROM T2 t2 JOIN T3 t3 ON t2.ID = t3.ID
                       ) o

SQLFiddle上的演示

于 2013-04-11T10:42:50.597 回答
0

如果我对您的理解正确,这会有所帮助:

INSERT INTO T4
SELECT ID, A, B, C 
FROM    (SELECT a,b,c FROM T2 WHERE ID IN (SELECT ID FROM T3)) tab1
        CROSS JOIN T1
于 2013-04-11T10:37:45.497 回答