如何在 INSERT 中使用 SELECT 来定义 mysql 中的特定列
How to use SELECT inside INSERT to define a specific column in mysql
我有一个插入语句需要从另一个 table 获取特定值。
所以,我搜索并发现了这个问题:
How to insert values into an MYSQL-Table by using Select-Statements
但是,我遇到了困难,因为我只需要 1 列。
我现在拥有的:
INSERT INTO TABLE_A (ID_STATUS, ID_USER, ID_Q_INI, ID_Q_FIN, PRICE )
VALUES
(1, 2, 10, 17, (SELECT SUM(PRICE) FROM TABLE_B WHERE (ID_Q >= 10 && ID_Q < 17))
我想做的是:当我注册新购买时,我的脚本只会输入状态、用户 ID 以及初始产品 ID 和最终产品 ID。
最终价格将是从 X 到 Y-1 的产品的总和。
我想做的事情有可能吗?或者我必须进行第一个查询,以获取值然后进行插入?
我认为这可行(未测试)
INSERT INTO TABLE_A (ID_STATUS, ID_USER, ID_Q_INI, ID_Q_FIN, PRICE )
SELECT 1, 2, 10, 17
, SUM(PRICE)
FROM TABLE_B
WHERE ID_Q >= 10
AND ID_Q < 17
也许您需要在 1、2、10 和 17 上添加分组
INSERT INTO TABLE_A (ID_STATUS, ID_USER, ID_Q_INI, ID_Q_FIN, PRICE )
SELECT 1, 2, 10, 17
, SUM(PRICE)
FROM TABLE_B
WHERE ID_Q >= 10
AND ID_Q < 17
GROUP BY 1, 2, 10, 17
我相信您在查询末尾漏掉了 )
您的查询经过一些格式化后:
INSERT INTO TABLE_A
(ID_STATUS, ID_USER, ID_Q_INI, ID_Q_FIN, PRICE )
VALUES
(
1,2,10, 17, (
SELECT SUM(PRICE)
FROM TABLE_B
WHERE (ID_Q >= 10 && ID_Q < 17)
)
我有一个插入语句需要从另一个 table 获取特定值。
所以,我搜索并发现了这个问题: How to insert values into an MYSQL-Table by using Select-Statements
但是,我遇到了困难,因为我只需要 1 列。
我现在拥有的:
INSERT INTO TABLE_A (ID_STATUS, ID_USER, ID_Q_INI, ID_Q_FIN, PRICE )
VALUES
(1, 2, 10, 17, (SELECT SUM(PRICE) FROM TABLE_B WHERE (ID_Q >= 10 && ID_Q < 17))
我想做的是:当我注册新购买时,我的脚本只会输入状态、用户 ID 以及初始产品 ID 和最终产品 ID。
最终价格将是从 X 到 Y-1 的产品的总和。
我想做的事情有可能吗?或者我必须进行第一个查询,以获取值然后进行插入?
我认为这可行(未测试)
INSERT INTO TABLE_A (ID_STATUS, ID_USER, ID_Q_INI, ID_Q_FIN, PRICE )
SELECT 1, 2, 10, 17
, SUM(PRICE)
FROM TABLE_B
WHERE ID_Q >= 10
AND ID_Q < 17
也许您需要在 1、2、10 和 17 上添加分组
INSERT INTO TABLE_A (ID_STATUS, ID_USER, ID_Q_INI, ID_Q_FIN, PRICE )
SELECT 1, 2, 10, 17
, SUM(PRICE)
FROM TABLE_B
WHERE ID_Q >= 10
AND ID_Q < 17
GROUP BY 1, 2, 10, 17
我相信您在查询末尾漏掉了 )
您的查询经过一些格式化后:
INSERT INTO TABLE_A
(ID_STATUS, ID_USER, ID_Q_INI, ID_Q_FIN, PRICE )
VALUES
(
1,2,10, 17, (
SELECT SUM(PRICE)
FROM TABLE_B
WHERE (ID_Q >= 10 && ID_Q < 17)
)