使用INNER JOIN更新多个匹配值

时间:2013-07-04 16:17:10

标签: sql inner-join

当另一个表有多个与外键匹配的值时,如果我使用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

谢谢!

2 个答案:

答案 0 :(得分:0)

我不确定你在做什么数据库。刚在Oracle中尝试了这个,它返回一个错误'单行子查询返回多行'。正如我在问题的评论中所建议的,我建议您寻找可以确定最合适的电话号码的方法。

答案 1 :(得分:0)

在您的情况下,UPDATE将运行3次 1)电话将更新至555-123-4567
2)电话将更新至888-999-0000
3)电话将更新至111-222-3333