把 表 weak2 的scroe2 列,按 name 对应更新或插入  
到 表 weak1 的scroe1 列,删除weak1中有的而weak2中没有的name行。谢谢!ACMAIN_CHM大侠,我需要你!

解决方案 »

  1.   

    delete from weak1  
    where not exists (select 1 from weak2  where weak1.name=B.name)update weak1 A,weak2 B
    set A.score1 = B.score2
    where A.name = B.name
      

  2.   

    楼上大侠 (select 1……)这个“1”是?
      

  3.   

    还有,B中还有新增的name,而A中没有,这些插进去了吗?我比较菜,所以问下……
      

  4.   

    把 表 weak2 的scroe2 列,按 name 对应更新或插入 
    如果NAME为主键 OR 唯一KEY,可以考虑用REPLACE INTO解决
    否则两条SQL语句解决到 表 weak1 的scroe1 列,删除weak1中有的而weak2中没有的name行。
    delete a from  weak1  a left join weak2 b on a.name=b.name where b.name is null
      

  5.   

    EXISTS/NOT EXISTS 后面的子查询,select 1 还是 0 还是其他什么无所谓,exists只是判断这个select是否有结果集。只要有一行记录,EXISTS就为“真”。切忌把EXISTS (SELECT 1 FROM .....)当作是EXISTS (SELECT 0 FROM .....)的反义词。这两句是一样的之所以用select 1主要是为了书写方便,且加快查询速度。