我有两张桌子,水果和餐,Meals中的一列是varchar(100),里面有水果。我正在改变这一点 该列是Fruits表中水果的id,我想通过比较两个表并抓住id来设置它 从水果表中的水果列匹配。
Table: Fruits
id | fruit
1 apple
2 banana
3 orange
Table: Meals
id | Meal | Fruit
1 xxxx apple
2 xxxx apple
3 xxxx orange
4 xxxx banana
5 xxxx orange
6 xxxx orange
7 xxxx apple
我尝试过以下脚本,但是出现以下错误。
Update product_attribute set control_caption =
(
Select DISTINCT T1.control_caption_id from control_caption T1
INNER Join product_attribute T2
On T1.control_caption = T2.control_caption
Where T1.control_caption = T2.control_caption
)
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
答案 0 :(得分:2)
取决于您的RDBMS,但这适用于SQL Server:
Update pa
set pa.control_caption = cc.control_caption_id
From product_attribute pa
Join control_caption cc On
cc.control_caption = pa.control_caption
答案 1 :(得分:0)
可以简化更新查询,可以使用Join代替运行select语句的子查询。
Update P
Set P.Control_Caption = C.Control_Caption_ID
From Product_Attribute P
join Control_Caption C on C.Control_Caption= P.Control_Caption
这可以在SQL Server和Oracle上运行。