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

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文を書く必要があるとは、想像できるのですが・・・
どなたか、ご教授いただけると助かります。
よろしくお願いします。

A 回答 (3件)

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;
    • good
    • 0
この回答へのお礼

ご回答どうもありがとうございます。
こちらも試してみたいと思います。
やはりユニオンクエリが必要なのですね・・
アクセスのGUIだけで、SQLを書かなくても、こういったことができるようになると楽チンなのですが・・・でもそれでは勉強になりませんね(苦笑
とにかく、ユニオンクエリに頭をひねっている時間がなかったので、助かりました。
ありがとうございました!

お礼日時:2009/05/28 16:10

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」フィールドは、非表示のまま、並べ替えに
  使用することで、ご質問文の通りの並べ順にしています。
「ACCESSクエリでの結合の仕方・・・S」の回答画像2
    • good
    • 0
この回答へのお礼

はい、抽出だけですので、内容の更新はなくて大丈夫です。
なんと、「SQL+クエリ」という手法ができるんですね。
考えてみればできることがわかるのですが、これはちょっと気がつきませんでした。
今回は、この手法でやってみたいと思います。
ご丁寧に挿絵までいただき、大変よく理解することができました!
勉強にもなりました!
本当にどうもありがとうございました。

お礼日時:2009/05/28 16:07

内部結合、外部結合、左外部結合などの言葉がある。


それをエクセルの解説書かWEBで勉強し、質問はどれに当たるか勉強してから、質問すべきだ。
http://www.geocities.jp/kotopara_g/oshiete01/a_k …
など。
SQLはクエリをデザインビューで正しく組み立てれば、SQLビューで見るとどうなるか判る。2の次だ。
>SQL文を書く必要があるとは、想像できるのですが・
生半可な知識で先走りすぎ。SQLから書く人やVBA+SQLでやる(出来る)人ももちろん居るがまだそのレベルではなさそうだ。
ACCESSのGUIのよさを利用すべきだ。
    • good
    • 0
この回答へのお礼

恐れ入ります。
EXCELであれば、VBA+SQLで既にガンガンに組んでいて、DB抽出も更新も慣れています。
ACCESSでも、よくクエリは使っていますが、ユニオンクエリ方面が、あまり使ったことがないもので。

勉強します!

お礼日時:2009/05/28 16:05

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