1

これが私のテーブルの設定方法です-

Products
_______

P_Id  Desc  
1      Apple  
2     Orange  
3     Banana


Categories
__________

P_Id  Cat_Id  
1      200  
2      200  
3      205 

次に、テーブル「Products」のフィールド「Desc」フィールドを更新する必要があります。ここで、テーブル「Categories」の「Cat_Id」フィールドは200です。ご協力いただければ幸いです。

4

2 に答える 2

3

これを行う1つの方法は次のとおりです。

UPDATE Products
SET `desc` = 'foo'
WHERE P_id IN (SELECT P_Id FROM Categories WHERE Cat_Id = 200)

別のアプローチは、複数テーブルの更新を使用することです

UPDATE Products, Categories
SET Products.`desc` = 'foo'
WHERE Products.P_id = Categories.P_ID
AND Categories.Cat_Id = 200

ところで、desc列の名前には非常に悪い選択です。予約語です。descriptionバッククォートを忘れたときに機能しないクエリをデバッグする必要がある場合、完全に入力しないことで節約されたすべての時間がすぐに失われます。

于 2012-08-27T20:40:53.220 に答える
0

これを試して:

UPDATE products
set `Desc` = 'xxx'
WHERE P_id IN (SELECT P_Id FROM Categories WHERE Cat_Id = 200);
于 2012-08-27T20:42:55.457 に答える