我有一个表名shop_balance。其中有 3 列
(shop_balance_id (INT,PK)、
shop_balance (DOUBLE)、
balance_date (DATE))。
对于 shop_balance (DOUBLE) 列,我使用两个子查询。1.获取shop_balance
表中
最后一个店铺余额金额行 shop_balance列。
2.购买一件商品后获取购买金额。
最后我减去它们并得到当前的商店余额
我的查询在这里
INSERT INTO shop_balance
SELECT null,
(
(SELECT shop_balance FROM shop_balance
WHERE
shop_balance_id=(SELECT MAX(shop_balance_id) FROM shop_balance)
)
-
(
SELECT
SUM(pr_pur_cost_price*quantity) AS net FROM product_purchase_item AS i
LEFT JOIN
product_purchases AS p
ON
p.product_purchase_item_id=i.product_purchase_item_id
WHERE
p.insert_operation=$id
GROUP by
p.insert_operation
)
),curdate();
很明显,这两个子查询是不同的条件,它们没有直接关系。上面INSERT
的查询运行良好。但是对一个值使用许多没有INSERT ... SELECT
语法的子查询是个好主意吗?INSERT
如果没有,我该如何转换为INSERT ... SELECT
语法?