[英]Update column with a subquery
ALTER TABLE order_t ADD Totalfixed DECIMAL(7,2);
UPDATE Order_t
SET Totalfixed = (
SELECT orderid, SUM(price * quantity) AS tf
FROM
orderline ol,
product p
WHERE
ol.productid = p.productid
AND ol.orderid = orderid
GROUP BY orderid
);
一切都可以單獨工作,但我得到:
操作數應包含1列
而且,如果我從子查詢中刪除了orderid
,則會得到:
子查詢返回1行以上
無論如何,有沒有join
就可以使這項工作嗎?
無論數據庫如何,上下文都需要標量子查詢。 這意味着避免group by
並且僅返回一列:
UPDATE Order_t
SET Totalfixed = (
SELECT SUM(price * quantity) AS tf
FROM orderline ol JOIN
product p
ON ol.productid = p.productid
WHERE ol.orderid = Order_t.orderid
);
我還修復了JOIN
語法( 始終使用顯式聯接)和相關子句,因此它引用了外部查詢。
UPDATE A
SET Totalfixed = SUM(price * quantity)
FROM Order_t A
INNER JOIN orderline ol ON ol.orderid = A.orderid
INNER JOIN product p ON ol.productid = p.productid
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.