就拿DZ6.10数据库结构说话吧:ucenter.uc_members.salt, 
ucenter.uc_members.password, 
ucenter.uc_members.email, discuz.cdb_memberfields.nickname,
我想把这两个数据库的上述字段通过联合检索合并到一张临时表里面,我试验了多次,都失败了
INSERT INTO tmp_table (uid, salt, password, email) select uid, salt, password, email from ucenter.uc_members;
可以成功,没问题,但是更新临时表 nickname 就有问题了,总是错误。请问该怎么写才对?

解决方案 »

  1.   

    UPDATE tmp_table set nickname = (select nickname from discuz.cdb_memberfields where uid = discuz.cdb_memberfields.uid) where uid = discuz.cdb_memberfields.uid;我自己也觉得有错误,但是就是不知道哪儿错了
      

  2.   

    UPDATE tmp_table a inner join discuz.cdb_memberfields b 
    on a.uid=b.uid
    set a.nickname =b.nickname
      

  3.   

    其实你的可以一句sql就可以搞定,不用update:
    INSERT INTO tmp_table (uid, salt, password, email, nickname) 
    select a.uid, a.salt, a.password, a.email, b.nickname from ucenter.uc_members a left join discuz.cdb_memberfields b on a.uid=b.uid;