0

他のテーブルに外部キーと一致する複数の値がある場合に、INNER JOIN を使用してテーブルを更新するとどうなりますか。

     update   
       customer 
     SET  
       customer.chosen_phone = phone.number
     FROM  
      customer c 
     INNER JOIN  
      phone p  
     ON  
      c.id = p.customer_id

customer
--------
id    chosen_phone
--    ------------ 
10    ?

phone
----- 
customer_id  number
-----------  ------
10           555-123-4567
10           888-999-0000
10           111-222-3333

ありがとうございました!

4

2 に答える 2

0

どのデータベースで作業しているのかわかりません。Oracleでこれを試してみたところ、「単一行のサブクエリが複数の行を返します」というエラーが返されました。質問に対するコメントで提案したように、最も適切な電話番号を判断できる方法を探すことをお勧めします。

于 2013-07-04T16:59:33.200 に答える
0

あなたの場合、UPDATE は 3 回実行されます
1) 電話は 555-123-4567 に更新されます
2) 電話は 888-999-0000 に更新されます
3) 電話は 111-222-3333 に更新されます

于 2013-07-05T07:59:34.370 に答える