从另一个具有相同ID的表中插入选择

时间:2013-07-28 19:16:38

标签: mysql

这是我的table1

 id  | userid | country

  1  | 25     |    
  2  | 36     |    
  3  | 24     |  
  4  | 24     |   
  5  | 25     |  
  6  | 24     |   

表2

  id   |  country

  25   |   Algeria  
  36   |   Canada
  24   |   Sweden
  15   |   China
  

WHERE table2.id = table1.userid

所以我的结果将是

  id  | userid | country

  1  | 25     |  Algeria 
  2  | 36     |  Canada 
  3  | 24     |  Sweden
  4  | 24     |  Sweden 
  5  | 25     |  Algeria
  6  | 24     |  Sweden

my SQLFIDDLE

我试过这个

 INSERT INTO `table1`(`country`) 
  SELECT m.country from table2 m , table1 v WHERE  m.id = v.userid  

但它什么都没插入。我想知道错误在哪里? 。

EDIT。

country field is Empty它只是fidle显示空值

1 个答案:

答案 0 :(得分:2)

您应该执行UPDATE而不是INSERT,因为行已经存在且您想要修改某个字段。

UPDATE  table1 a
        INNER JOIN table2 b
            ON a.userid = b.id
SET     a.country = b.country