mysql - 在mysql中为每个子查询插入多行

标签 mysql nested subquery

例如,我想使用 select 进行插入,然后为每个子查询的返回值插入多行

INSERT INTO t1 (column1, column2, column3)
SELECT column1_value,5,10 FROM t2;

将为每行的 column2 插入 5,为第三列的每行插入 10。无论如何,我可以在此处传递多个值以在第 2 列中获得一行 5,另一行从 t2 的选择中获得每条记录 7 吗?

最佳答案

使用UNION

INSERT INTO t1 (column1, column2, column3)
SELECT column1_value, 5, 10 FROM t2
UNION ALL
SELECT column1_value, 5, 7 FROM t2

你也可以加入UNION

INSERT INTO t1 (column1, column2, column3)
SELECT t2.column1_value, 5, t3.column3_value
FROM t2
CROSS JOIN (SELECT 10 AS column3_value
            UNION
            SELECT 7 AS column3_value) AS t3

关于mysql - 在mysql中为每个子查询插入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39665665/

相关文章:

mysql - 带有 count() 和位置的 SQL 请求

mysql - SQL 计算一个表相对于另一表的行数

nested - graphql - 在突变中使用查询 - 创建嵌套对象

mysql - SQL:本年度未购买过商品的客户

子查询中的 MySQL group_concat 返回多行

mysql - 将 Insert 语句放入 Select 语句中

php - 查明该列是否支持 mysqli 中的 "Null"值

mysql - 按字段字母顺序排序描述表 foo 输出

excel - Excel-VBA嵌套错误处理

javascript - 嵌套复选框 : Checked/Unchecked children with parent check