insert into a select * from b where  not exists a

解决方案 »

  1.   

    --集合並: union 
    --集合交: intersect 
    --集合差: minus
    select * from a union select * from b;此句會將a and b 數據組合,不會有重複.那就好辦了,對不對?
      

  2.   

    insert into a select * from b where id not in (select id from a)
      

  3.   

    in mysql:
    方法1:
    REPLACE INTO A 
    SELECT * FROM B;//具体请看mysql manaul 6.4.8
    方法2:
    INSERT INTO A
    SELECT B.* FROM B
    LEFT JOIN A ON A.ID = B.ID
    WHERE A.ID IS NULL;
      

  4.   

    方法2::)更好一些的是用 INSERT .. SELECT ...的 IGNORE 开关
    INSERT [LOW_PRIORITY] [IGNORE] [INTO] tbl_name [(column list)] SELECT ...如果你在一个有许多条记录行值的 INSERT 中指定关键词 IGNORE,任何在表中现有的 PRIMARY 或 UNIQUE 键上重复的记录行均会被忽略而不被插入。如果你不指定 IGNORE,当有任何记录行在一个现有的键值上重复时,插入均会被中止。你可以通过 C API 函数 mysql_info() 测定共有多少记录行被插入到表中。
      

  5.   

    恩。使用IGNORE是方便多了哈。