1

2 つのテーブル。それぞれ8つのフィールド。両方のテーブルには同じデータがあり、一方には 137,002 レコード (tablea) があり、もう一方には 135,759 レコード (tableb) があります。3 つの列 (qid、sid、aid) の場合、両方のテーブルが共通のプライマリ フィールドを共有します。

単一のクエリはありますか。1) tablea をプライマリ フィールドの tableb と比較し、2) レコードが tablea にあり、tableb にない場合は、レコードを tablea から tableb にコピーします。

php ループを記述して 137,002 を通過し、それぞれを比較するのではなく、sql クエリで tableb を更新できるようにしたいと考えています。

ありがとう

4

4 に答える 4

1

それは次のようになります。

insert into table2 (qid, sid ...)
    select  
        t1.qid,
        t1.sid,
        ...
    from table1 t1
    where 
        not exist (select t2.qid, t2.sid, ... from table2 t2 where t2.qid = t1.qid and t2.sid = t1.sid...)
于 2013-08-03T08:34:03.243 に答える
0

使用mergeして...使用するinsertだけで....使用しないでくださいupdate

于 2013-08-03T08:36:12.663 に答える