0

我有两张桌子。

表 A 是需要按问题类型过滤的问题列表。例如 SELECT * from TableA WHERE Qtype = "whatever"

然后,我需要为 TableA 上的查询提取的每条记录添加四个新记录到表 B。

表 A 和表 B 在 ID 号上连接 - TableA.id = TableB.questionid

我假设我需要运行它四次,每添加一条记录一次。

我对 FOR EACH 命令和 INNER JOIN 感到困惑

将不胜感激任何帮助!

4

2 回答 2

3

恐怕我仍然不完全理解您的问题,但这将为TableB的每个记录插入三个记录TableA,其中三个不同的值用于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 回答
3

试试这个 4 次:

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