我正在尝试在一个查询中向表中添加多行,而我想要插入的一些值来自不同的表。我怎么做?这是我想要整理的sql语句的想法:
INSERT INTO
finalTable (oneID, twoID, oneName, twoNAme, formValue)
VALUES
('1','a', SELECT oneName FROM tableOne WHERE id = '1' , SELECT twoName FROM tableTwo WHERE id = 'a', 'some value'),
('2','b', SELECT oneName FROM tableOne WHERE id = '2' , SELECT twoName FROM tableTwo WHERE id = 'b' ,'some other value')
select子查询不能以这种格式工作,我该如何重写语句?
答案 0 :(得分:0)
尝试此解决方案。这可能适用于您的方案。
INSERT INTO finalTable(oneID,twoID,oneName,twoNAme,formValue)
SELECT * FROM (SELECT T1.id,T2.Id,T1.oneName,T2.twoName, 'some value' FROM tableOne T1 LEFT OUTER JOIN tableTwo T2 ON T2.id>0 WHERE T1.id = '1' AND T2.id='a' LIMIT 1) A
UNION
SELECT * FROM (SELECT T1.id,T2.Id,T1.oneName,T2.twoName, 'some other value' FROM tableOne T1 LEFT OUTER JOIN tableTwo T2 ON T2.id>0 WHERE T1.id = '2' AND T2.id='b' LIMIT 1) B