0

私は2つのテーブルを持っています。

表 A は、質問タイプでフィルタリングする必要がある質問のリストです。例 SELECT * from TableA WHERE Qtype = "whatever"

次に、TableA のクエリによって取得されたレコードごとに、Table B に 4 つの新しいレコードを追加する必要があります。

テーブル A とテーブル B は ID 番号で結合します - TableA.id = TableB.questionid

追加するレコードごとに 1 回ずつ、合計 4 回実行する必要があると思います。

INNER JOIN と組み合わせた FOR EACH コマンドで混乱しています

助けていただければ幸いです!

4

2 に答える 2

3

これを4回試してください:

INSERT INTO TableB (questionid, otherfieldB)
VALUES (
    SELECT id, otherfieldA
    FROM TableA
    WHERE Qtype = "whatever"
)
于 2012-05-16T16:46:32.880 に答える
3

申し訳ありませんが、あなたの質問をまだ完全には理解していませんが、これにより、TableBの各レコードに対してTableAに 3 つの異なる値を持つ 3つのレコードが挿入されnewfieldます。

INSERT INTO TableB (ID, newfield) (
  SELECT a.ID, n.newfield
  FROM (
    SELECT 'Excellent' AS newfield UNION ALL
    SELECT 'Something' UNION ALL
    SELECT 'Something else'
  ) n
  CROSS JOIN TableA a
)
于 2012-05-16T21:12:07.470 に答える