電子書籍の厳選無料作品が豊富!

毎度お世話になります。

2つの異なるテーブルから
同じような結果をselectするのですが
可能ならば一発のSQL文で結果を得たいと考えております。

以下のように繋がった結果を得ることは可能でしょうか?
ご教示いただければ幸いです。
宜しくお願いいたします。

A表へのselect結果1
あ | い
-------------
(1) | (1)
(1) | (1)

B表へのselect結果2
あ | い
-------------
(2) | (2)
(2) | (2)

本来ほしい結果
あ | い
-------------
(1) | (1)
(1) | (1)
(2) | (2)
(2) | (2)

※単純に繋がった結果を得られれば満足です。

A 回答 (3件)

結論から言えば可能です。



MySQL のドキュメントから、
「UNION ALL」の使い方を調べてみてください。
やりたいことは実現できるかと思います。

但し、私見として述べさせていただきますと、
2つ以上の結果をマージした形で結果を得る場合、
実際はサーバは、その回数だけ問い合わせを実行しています。
つまり、クライアントからサーバへのラウンドトリップは
1回だけですが、サーバ内部では複数の問い合わせが実行されています。
データ件数が膨大である場合は、テーブルの分散は効果的ですが、
少量データである場合の分散は逆効果である場合がありますので、
ご注意ください。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました。
やっと、やりたいことが実現できました!

この度はお忙しい中、誠にありがとうございました。

お礼日時:2007/08/17 16:29

#2です。



ちょっと勘違いしてました。
UNION ALL は、共通的に使える書き方ですから、
MySQL と書いてしまいましたが、Oracle でも十分に使えます。
    • good
    • 0

union allで二つのselect文をくっ付けましょう。

    • good
    • 0
この回答へのお礼

アドバイス、ありがとうございました。

こんなに簡単にできるとは思っていませんでした。
お恥ずかしい限りです。

お礼日時:2007/08/17 16:30

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