解决方案 »

  1.   

    update  表2 set 员工名称=(select MAX(员工名称) from 表1 WHERE 员工编号=表1.员工编号)
    WHERE EXISTS(select 1 from 表1 WHERE 员工编号=表1.员工编号)
      

  2.   

    不是用update 而是自动生成的  表1是员工表 表2是考勤表  当表1中的某个员工签到后会自动在表2里面插入一条考勤记录,但是这记录里面有员工编号没有员工的姓名这个字段,现在就是想添加这个字段,以后他们签到的时候自动生成的记录里面有相应的员工名称
      

  3.   

    不是用update 而是自动生成的  表1是员工表 表2是考勤表  当表1中的某个员工签到后会自动在表2里面插入一条考勤记录,但是这记录里面有员工编号没有员工的姓名这个字段,现在就是想添加这个字段,以后他们签到的时候自动生成的记录里面有相应的员工名称
    就是直接select出来呗
    select 表2.*,表1.员工名称
    from 表1,表2
    where 表1.员工编号=表2.员工编号(+)
      

  4.   

    bw555的回答就是可以的,相当于SQL SERVER中的 UPDATE  FROM
      

  5.   

    对于之前已经存在的数据,可以采用 2# 的方法,如果后面有新的数据进来,可以考虑 TR 来实现 。
    给你个例子,一看就明白 
    create table m  as 
    select 1 id , 'beijing' name from dual union all
    select 2 id , 'shanghai'name from dual 
    /
    create table s (id int not null , name varchar(30) , re varchar(30))
    /
    create or replace trigger s_ins_tr 
    before insert on s 
    for each row 
      begin
       select name into  :new.name from m where id = :new.id ;
      end ;
    /
    insert into s(id , re ) values(1,'test')
    /
    select * from s 
    /