0

右、locals というテーブルに挿入する必要がある次のデータがありますが、street フィールドが locals テーブルにまだ存在しない場合にのみ挿入します。データとフィールドは次のとおりです。

Street    PC       Locality
------------------------------
Street1   ABC xyz  A
Street2   DEF xyz  B

などですが、Street フィールドがまだ locals テーブルに存在しない場合は、Locals テーブルに挿入したいと考えています。

以下の使い方を考えていました。

INSERT
  INTO Locals (Street,PC,Locality) 
       (
            SELECT DISTINCT s.Street
              FROM Locals_bk s
             WHERE NOT EXISTS (
                      SELECT 1
                        FROM Locals l
                       WHERE s.Street = l.Street
                   )
       )
     ;

しかし、同じ行の残りのデータではなく、番地フィールドのみを挿入することを認識しています。

4

4 に答える 4

1

NOT IN を使用できます。

    INSERT into Locals (Street,PC,Locality) 
    SELECT s.Street, s.PC, s.Locality
    FROM Locals_bk as s
    WHERE NOT IN (SELECT * FROM Locals as t WHERE t.street = s.street)
于 2013-08-16T11:15:50.633 に答える