2016-03-30 19 views
-1

レコードのチェックボックスを更新しようとしていますテーブルのレコードが別のテーブルに存在しない場合。SQLへのアクセス - レコードが存在しない場合

例データ:

Table1: 
111 John Davies 
222 Mike Johnson 
333 Allen Mckenzie 

Table2: 
000 John Jackson 
222 Laura Kent 
444 Paul Saint 

私は言い換えるとなるよう、一緒に別のすべてのフィールドを持つレコードのみを更新したい - 各フィールドが存在しません。私の例でなり、このため結果:

私はNOT INを試してみた
444 Paul Saint 

、LEFT JOINは、INNER JOINを、私は、チェックボックスを更新する必要があるため、正しい句を把握することはできません - その句は、更新を伴わなければなりません。 。

アイデア?

+0

000ジョン・ジャクソンも有効でしょうか?ジョンはすでにどこかに存在しているからですか?あなたの例をもう少し明確にすることはできますか? – JanR

+0

JohnはすでにTable1に存在するため、john jacksonは有効ではありません。私は、すべてのフィールドが異なると言った。 – LuckyLuke82

+0

あなたのデータベースにはJohnと呼ばれる人が1人しかいませんか?奇妙な要求のように見える – JanR

答えて

1

私はこのような何かが動作するはずだと思う:

Update Table1 
SET Checkbox = True 
WHERE NOT EXISTS(SELECT 1 
       FROM Table2 
       WHERE table1.id=table2.id 
        OR table1.name=table2.name 
        or table1.surname=table2.surname) 
+0

テーブル2を更新する必要がある場合はどうすればよいですか?それは異なる値を含んでいるからですか? – JanR

+0

私はクエリを元に戻す必要があると思います。 – cha

+0

@JanR:あなたが尋ねたのは面白いです。 MS Accessの奇妙なUPDATEステートメントは、同時に複数のテーブルから列を更新することができます。このケースには適用されない場合がありますが、Accessは通常結合されたテーブルに対してこの機能を備えています。 – cha

関連する問題