ACCESS 2003を使用しています。
テーブルA
テーブルB
の2テーブルでクエリを作っています。
結合的には・・・
テーブルAのフィールドX ⇔ テーブルBのフィールドY
です。
これで2テーブルに共通する一致データのみ抽出はできるのですが、
2テーブルに共通する一致データに加えて、
2テーブルの不一致データも一緒にクエリ表示されるようにしたいのです。
欲しいのは抽出イメージは、以下のような感じのクエリ結果です。
テーブルA:フィールドX|テーブルBのフィールドY
a |(空)
(空) |b
c |c
d |(空)
(空) |e
f |f
g |(空)
h |h
おそらく、SQL文を書く必要があるとは、想像できるのですが・・・
どなたか、ご教授いただけると助かります。
よろしくお願いします。
No.1
- 回答日時:
X Y
b
e
a
c c
d
f f
g
h h
表示順はXになってしましますが、以下のクエリでできると思います。
(更新はできません)
SELECT テーブルA.X, テーブルB.Y
FROM テーブルA LEFT JOIN テーブルB ON テーブルA.X = テーブルB.Y
UNION
SELECT テーブルA.X, テーブルB.Y
FROM テーブルA RIGHT JOIN テーブルB ON テーブルA.X = テーブルB.Y;
ご回答どうもありがとうございます。
こちらも試してみたいと思います。
やはりユニオンクエリが必要なのですね・・
アクセスのGUIだけで、SQLを書かなくても、こういったことができるようになると楽チンなのですが・・・でもそれでは勉強になりませんね(苦笑
とにかく、ユニオンクエリに頭をひねっている時間がなかったので、助かりました。
ありがとうございました!
No.2ベストアンサー
- 回答日時:
SQL文のみで組もうとしたら、私自身がちょっと混乱してしまったので(汗)、
「SQL+クエリ」の組み合わせの形で回答させて戴きます。
なお、No.1の方の回答と同様、更新はできません。
(更新が必要な場合は、画像添付したクエリをテーブル作成クエリか
追加クエリにして、「ワークテーブルで編集&更新ボタンで反映」
といった機構が必要になります)
まず、新規クエリのSQLビューに、以下のSQL文を貼り付けて、
名前を「SQ1」として保存してください。
内容は、「テーブルAのフィールドX、及びテーブルBのフィールドYに
あるデータの非重複の一覧」になります:
Select フィールドX As Idx From テーブルA
Union Select フィールドY As Idx From テーブルB;
次に、この「SQ1」クエリと、テーブルA、テーブルBを使用し、添付
画像のようなクエリを作成してください。
(こちらのクエリ名は何でもOkです)
念のため、SQL文も貼り付けておきます:
SELECT テーブルA.フィールドX, テーブルB.フィールドY FROM
(SQ1 LEFT JOIN テーブルA ON SQ1.Idx = テーブルA.フィールドX)
LEFT JOIN テーブルB ON SQ1.Idx = テーブルB.フィールドY
ORDER BY SQ1.Idx;
※「SQ1」に作成した「Idx」フィールドは、非表示のまま、並べ替えに
使用することで、ご質問文の通りの並べ順にしています。
はい、抽出だけですので、内容の更新はなくて大丈夫です。
なんと、「SQL+クエリ」という手法ができるんですね。
考えてみればできることがわかるのですが、これはちょっと気がつきませんでした。
今回は、この手法でやってみたいと思います。
ご丁寧に挿絵までいただき、大変よく理解することができました!
勉強にもなりました!
本当にどうもありがとうございました。
No.3
- 回答日時:
内部結合、外部結合、左外部結合などの言葉がある。
それをエクセルの解説書かWEBで勉強し、質問はどれに当たるか勉強してから、質問すべきだ。
http://www.geocities.jp/kotopara_g/oshiete01/a_k …
など。
SQLはクエリをデザインビューで正しく組み立てれば、SQLビューで見るとどうなるか判る。2の次だ。
>SQL文を書く必要があるとは、想像できるのですが・
生半可な知識で先走りすぎ。SQLから書く人やVBA+SQLでやる(出来る)人ももちろん居るがまだそのレベルではなさそうだ。
ACCESSのGUIのよさを利用すべきだ。
恐れ入ります。
EXCELであれば、VBA+SQLで既にガンガンに組んでいて、DB抽出も更新も慣れています。
ACCESSでも、よくクエリは使っていますが、ユニオンクエリ方面が、あまり使ったことがないもので。
勉強します!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Access クエリ 同一テーブル内 複数フィールドの同時集計のやり方について 1 2022/05/18 19:01
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
accessのテーブルを閉じたとき...
-
AccessVBAで任意の複数リンクテ...
-
最新日のデータのみ抽出するク...
-
Accessのリンクされたテーブル...
-
Accessで表計算のMatch関数のよ...
-
accessについて(超初心者です)
-
Accessでテキストフィールドの集計
-
テーブルに表示されているもの...
-
2つのテーブルに共通するレコ...
-
access vbaにてテンポラリーテ...
-
テーブル内の文字数が多くても...
-
Accessで、別のテーブルにある...
-
ACCESS テーブル同士の照合
-
Access2003 異なるテーブルを...
-
日付型のフィールドに空白を入...
-
ACCESSの時間帯の抽出について
-
差込印刷での全角表示について...
-
テキストボックスにクエリ結果...
-
「年」と「月」だけの日付の表...
-
更新クエリをリンクデータベー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
2つのテーブルに共通するレコ...
-
最新日のデータのみ抽出するク...
-
テーブルに表示されているもの...
-
Acccessで2つのテーブルから1...
-
Accessでリストの並び順を変更...
-
Accessのリンクされたテーブル...
-
ACCESSユニオンクエリから新テ...
-
access vbaにてテンポラリーテ...
-
ACCESS テーブルを見比...
-
Accessのテーブルで、リンク?...
-
ACCESSでテーブルをコピーしよ...
-
アクセス 部分一致の抽出
-
accessについて(超初心者です)
-
Microsoft Access 「Form」のボ...
-
クエリで同一テーブルの複数回...
-
access2000・・テーブルをデー...
-
アクセス2016 チェックボックス...
-
Accessで使用しているリンクテ...
-
アクセス2000でのリンク先...
-
accessのテーブルを閉じたとき...
おすすめ情報