使用更新查询按第一个表的列更新第二个表的列

时间:2014-02-20 18:39:26

标签: mysql sql sql-server

表ep1

ID | NAME

1  | mohit

2  | rohit

3  | rohit

4  | vikram

5  | ankur

表ep2

 NAME  | ID

mohit  | -

rohit  | -

rohit  | -

vikram |-

ankur  | -

我想从ep1填充ep2的id列。我正在使用此查询:update ep2 set id=(select id from ep1 where name=ep2.name),但我无法获得所需的输出,因为表ep1中有两个具有相同名称的人。

3 个答案:

答案 0 :(得分:0)

假设两个表之间有一个共同的ID,你可以这样做:

Update t2  
SET name = t1.name 
FROM  ep2  t2 
INNER JOIN ep1 t1  ON t1.ID= t2.Id and t2.ID= someIdValue

答案 1 :(得分:0)

Update e2
set id = e1.id
from ep1 as e1
 inner join ep2 as e2
   on e1.name = e2.name
where e2.id is null

答案 2 :(得分:0)

怎么样

Update ep2
SET id = ep1.id 
FROM  ep2  
INNER JOIN ep1  ON ep1.name= ep2.name