有没有更好的方法来编写以下简单的SQL Server 2005更新语句?这似乎有点混乱效率不高。
UPDATE QuotationItem
SET Recurring_Cost =
(SELECT TOP (1) Recurring_Cost
FROM Products
WHERE (Remote_ID = QuotationItem.Product_ID))
WHERE (Quotation_ID = 115)
谢谢,
尼克
答案 0 :(得分:2)
如何使用联接
UPDATE QuotationItem
SET Recurring_Cost = p.recurring_cost
FROM QuotationItem q join Products p on q.Product_ID = p.Remote_ID
WHERE q.Quotation_ID = 115
答案 1 :(得分:0)
你的TOP 1
真的需要吗?如果是这样,既然你没有指定一个排序,那么你的查询得到了相当随机的结果!如果没有必要,可以这样做:
UPDATE q
SET Recurring_Cost = p.RecurringCost
FROM QuotationItem q
INNER JOIN
Products p
ON p.Remote_ID = q.Product_ID
WHERE q.Quotation_ID = 115