0

コードで簡単に実行できる SQL クエリを考え出そうとしていますが、SQL ではまったくなじみがありません。

できるだけ汎用的にしたいので、擬似コードを書きました。

foreach (record in TableA)
     foreach (record in TableB)
        var newRecord = new record(TableA.id, TableB.id)
        TableC.Add(newRecord) // TableC.id is autoincremented  
     end foreach
end foreach

WHILE ループを使用するか、これを達成するためのより良い方法はありますか? SQL Server 2008 を使用しています。ありがとうございます。

4

2 に答える 2

8

セットの観点から考えたいと思います。探している操作はcross join. これにより、2 つのテーブルからすべての組み合わせが生成されます (デカルト積)。

select a.id, b.id
from A cross join B

これをテーブルに挿入するには、次を使用できますinsert

insert into c(aid, bid)
    select a.id, b.id
    from A cross join B
于 2013-05-06T18:54:39.167 に答える
0

多分これ:

INSERT INTO TableC (ColumnA, ColumnB, ...)
SELECT A.something, B.somethingElse
FROM TableA A
INNER JOIN TableB B ON A.someKey = B.anotherKey
WHERE something = aValue
于 2013-05-06T18:56:38.510 に答える