我有两张桌子。
表 A 是需要按问题类型过滤的问题列表。例如 SELECT * from TableA WHERE Qtype = "whatever"
然后,我需要为 TableA 上的查询提取的每条记录添加四个新记录到表 B。
表 A 和表 B 在 ID 号上连接 - TableA.id = TableB.questionid
我假设我需要运行它四次,每添加一条记录一次。
我对 FOR EACH 命令和 INNER JOIN 感到困惑
将不胜感激任何帮助!
我有两张桌子。
表 A 是需要按问题类型过滤的问题列表。例如 SELECT * from TableA WHERE Qtype = "whatever"
然后,我需要为 TableA 上的查询提取的每条记录添加四个新记录到表 B。
表 A 和表 B 在 ID 号上连接 - TableA.id = TableB.questionid
我假设我需要运行它四次,每添加一条记录一次。
我对 FOR EACH 命令和 INNER JOIN 感到困惑
将不胜感激任何帮助!
恐怕我仍然不完全理解您的问题,但这将为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
)
试试这个 4 次:
INSERT INTO TableB (questionid, otherfieldB)
VALUES (
SELECT id, otherfieldA
FROM TableA
WHERE Qtype = "whatever"
)