表1中的每行中的Mysql INSERT数据为表1中的每一行

时间:2012-05-16 16:44:33

标签: mysql

我有两张桌子。

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

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

表A和表B加入ID号 - TableA.id = TableB.questionid

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

我对FOR EACH命令和INNER JOIN

一起感到困惑

非常感谢任何帮助!

2 个答案:

答案 0 :(得分: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
)

答案 1 :(得分:2)

试试4次:

INSERT INTO TableB (questionid, otherfieldB)
VALUES (
    SELECT id, otherfieldA
    FROM TableA
    WHERE Qtype = "whatever"
)