php - 如何在 mysql 中使用不同的选择子查询在表中插入行?

标签 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')

选择子查询不能以这种格式工作,我该如何重写语句?

最佳答案

尝试此解决方案。这可能适合您的场景。

插入 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/

相关文章:

mysql - 创建余额栏

mysql - 使用存储过程将用户添加到数据库

PHP mysql查询insert where

php - laravel项目的CI/CD如何使其稳定

mysql - 无法通过 ODBC 从 Windows 10 连接到 Linux MySQL DB

php - MySQL 性能 : Many tables or many rows?

php - 合并两个查询并将返回添加到数组

php - 即使使用 catch block ,PDO 未捕获的 PDO 异常也会在连接错误时转储密码

php - 模式匹配后显示输出

sql - MySQL中如何使用GROUP BY连接字符串?