複数のフィールドに基づいて重複する値を作成せずに、tblA の一意の値を tblB に追加したいと考えています。次の例では、FirstName と LastName が重複を判断し、Foo と Source は無関係です。
表:
FirstName LastName Foo ソース ジョン・ドウ 1A ジェーン ドウ 2 A スティーブ スミス 3 A ビル・ジョンソン 2A
表:
FirstName LastName Foo ソース ジョン ドゥ 1 B ボブ スミス 5 B スティーブ スミス 4 B
これは私が望む結果です:
表:
FirstName LastName Foo ソース ジョン・ドウ 1A ジェーン ドウ 2 A スティーブ スミス 3 A ビル・ジョンソン 2A ボブ スミス 5 B
これは私が試したコードと同等のものです:
INSERT INTO tblA
SELECT B.*
FROM tblB AS B
LEFT JOIN tblA AS A ON A.FirstName = B.FirstName AND A.LastName = B.LastName
WHERE A.FirstName IS NULL
そして、これは私が得る結果です:
表:
FirstName LastName Foo ソース ジョン・ドウ 1A ジェーン ドウ 2 A スティーブ スミス 3 A ビル・ジョンソン 2A ジョン ドゥ 1 B ボブ スミス 5 B
tblB の Steve Smith は無視されます。これは良いことです。tblB の John Doe が追加されましたが、これは悪いことです。私はこれにあまりにも多くの時間を費やし、考えられるあらゆる方法でデータを調べて、tblA と tblB の John Doe が同じ姓名であることを確認しました。何がうまくいかないのかについてのアイデアはありますか?
更新: 参考までに、私の実際の tblB では、30,000 のうち約 10,000 を tblA に移動する必要があります。これは実際には 21,000 を超えています。問題は、これが一般的なプロセスの 1 つのステップであることです。