如何在mysql中使用不同的select子查询在表中插入行?

时间:2017-04-04 23:30:19

标签: php mysql

我正在尝试在一个查询中向表中添加多行,而我想要插入的一些值来自不同的表。我怎么做?这是我想要整理的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子查询不能以这种格式工作,我该如何重写语句?

1 个答案:

答案 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