现在数据库中有两个表
姓名表:ID   姓名两个字段
操作表:ID 姓名 操作现在两个表内都有很多数据
但是操作表中的姓名字段是直接写入的名字
我想把名字改动成为姓名表中的ID字段。
打个比方:姓名表  id    姓名
  1     小国
  2     王明
  3     小亮操作表现在是  ID     姓名    操作
  1      小亮    登陆
  2      小国    退出
  3      小亮    修改资料
  4      小明    登陆
我想要的最终效果是:操作表:  ID     姓名    操作
  1      3       登陆
  2      1       退出
  3      3       修改资料
  4      2       登陆应该如何做呢

解决方案 »

  1.   

    select c.*,x.id as uid from 操作表 c left join 姓名表 x on c.姓名=x.姓名
      

  2.   

    update 操作表, 姓名表 set 操作表.姓名 = 姓名表.id where 操作表.姓名 = 姓名表.姓名
      

  3.   

    select 操作表.ID,用户表.ID,操作表.操作
    from 用户表,操作表
    where 用户表.姓名=操作表.姓名
      

  4.   

    兄弟,我要的UPDATE的语句不是查询的,呵呵
      

  5.   

    update 操作表, 姓名表 set 操作表.姓名 = 姓名表.id where 操作表.姓名 = 姓名表.姓名
    这个不对么?
    你不是说需要的是UPTADE语句么?
      

  6.   

    ......
    Siramizu写的那条sql不就可以了~~
    姓名是指你的表里面的字段名~~
      

  7.   

    你为什么不在记录插入操作表时就将姓名转换成姓名表中的id
    即在先用
    select id from 姓名表 where 姓名表.姓名=操作表.姓名
    得到姓名表中的id
      

  8.   

    update 操作表 set o.姓名 = n.id
    from 姓名表 n, 操作表 o 
    where o.姓名 = n.姓名 
      

  9.   

    你的 mysql 版本支持那条 update 的写法吗?
    如不支持,建议采用#1写法,并将结果插入新表