我正在尝试在一个查询中向表中添加多行,并且我想要插入的一些值来自不同的表。我怎么做?这是我试图组合的 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')
选择子查询不能以这种格式工作,我该如何重写语句?
最佳答案
尝试此解决方案。这可能适合您的场景。
插入 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
关于php - 如何在 mysql 中使用不同的选择子查询在表中插入行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43219428/