- ベストアンサー
Accessで差分取得!LEFT JOINエラーを解決する方法とは?
- Accessで差分抽出する方法を教えてください。新旧テーブル間の関連がない場合にはどうすればいいのでしょうか?
- 旧テーブルと新テーブルを比較して、差分を取得する方法を教えてください。
- LEFT JOINを使用して差分抽出を行おうとしたが、エラーが発生してしまいます。解決策を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
また違ってましたね。 SELECT T2.* FROM T2 LEFT JOIN T1 ON T2.number = T1.number AND T2.class = T1.class WHERE T1.class Is Null OR T1.number Is Null
その他の回答 (2)
- bonaron
- ベストアンサー率64% (482/745)
あ、もしかしたらこういうことだったのかな? SELECT T2.* FROM T2 WHERE T2.class Not In (Select Distinct Class From T1) OR T2.number Not In (Select Distinct Number From T1)
- bonaron
- ベストアンサー率64% (482/745)
LEFT JOIN エラーと言っても、 【ダメだったクエリ】は INNER JOIN になっていますが。 SELECT T2.* FROM T2 LEFT JOIN T1 ON T2.id = T1.id WHERE T1.id Is Null これで、望む結果が得られます。
補足
>LEFT JOIN エラーと言っても、 >【ダメだったクエリ】は INNER JOIN 本当ですね(^^; 失礼しました。 id は一意にするためのキーで、新旧の関連性はないのです。 class と number が一致すれば、同一レコード(新レコードと旧レコード)となります。 idは言わば、各テーブル内の行番号です。 SQLでは無視していただいて良いです。 【新テーブル】t2 id, class, number, value 11, "a", 1, "aka" 52, "a", 2, "更新" 63, "a", 3, "aku" 84, "a", 4, "新規" 105, "b", 1, "新規"
お礼
大正解です!ありがとうございます。