アプリ版:「スタンプのみでお礼する」機能のリリースについて

ACCESSで、以下のようにデータを追加をしたいです。
別々のテーブルで、データの一致しないものだけ追加したいです。
どのようにすればよいのでしょうか?
Aテーブル、Bテーブル共に入力項目は全て同じです。
よろしくお願いします。

 Aテーブル      Bテーブル
   名前 個人データ  名前 個人データ
  ・鈴木 ***     ・近藤 *** 
  ・近藤 ***     ・伊藤 ***
  ・渡辺 ***     ・鈴木 ***

求める答え

  ・鈴木 ***  
  ・近藤 *** 
  ・渡辺 ***
  ・伊藤 ***

たぶん、不一致クエリでBテーブルの伊藤さんだけ取り出して、Aテーブルに追加するという方法がやりやすいのでしょうか?
よろしくお願いします。

A 回答 (2件)

>不一致クエリでBテーブルの伊藤さんだけ取り出して、


>Aテーブルに追加するという方法がやりやすいのでしょうか?
考え方としてはこの方法でいいのですが
この方法でやるとたぶん名前が重複しているというエラーになります

上のようにして作ったクエリをSQLビューで表示したのが下です

INSERT INTO Aテーブル ( 名前, 個人データ, 名前 )
SELECT Bテーブル.名前, Bテーブル.個人データ, Aテーブル.名前
FROM Bテーブル LEFT JOIN Aテーブル ON Bテーブル.名前 = Aテーブル.名前
WHERE (((Aテーブル.名前) Is Null));

確かに抽出条件として使った名前まで記入されています
これがエラーの原因ですからこれを削除してやります

INSERT INTO Aテーブル ( 名前, 個人データ )
SELECT Bテーブル.名前, Bテーブル.個人データ
FROM Bテーブル LEFT JOIN Aテーブル ON Bテーブル.名前 = Aテーブル.名前
WHERE (((Aテーブル.名前) Is Null));
    • good
    • 1

クエリを3つ作成するのが一番簡単かと・・・。



1、クエリ1

SELECT * FROM A UNION SELECT * FROM B;

2、クエリ1とAとの差分

SELECT クエリ1.名前, クエリ1.個人データ
FROM クエリ1 LEFT JOIN A ON クエリ1.名前 = A.名前
WHERE (((A.名前) Is Null));

3、クエリ2

INSERT INTO A
SELECT *
FROM クエリ1とAとの差分;
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A