0

Fruits と Meals の 2 つのテーブルがあり、Meals の列の 1 つは果物を含む varchar(100) です。これを変更して、列が代わりに果物テーブルからの果物の ID になるようにします。2 つのテーブルを比較し、果物の列が一致する果物テーブルから 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.
4

2 に答える 2

2

RDBMSによって異なりますが、これはSQLServerで機能するはずです。

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
于 2013-03-19T20:29:02.580 に答える