• ベストアンサー

2つの検索結果を繋げたい

毎度お世話になります。 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) ※単純に繋がった結果を得られれば満足です。

質問者が選んだベストアンサー

  • ベストアンサー
  • SUPER-NEO
  • ベストアンサー率38% (706/1857)
回答No.2

結論から言えば可能です。 MySQL のドキュメントから、 「UNION ALL」の使い方を調べてみてください。 やりたいことは実現できるかと思います。 但し、私見として述べさせていただきますと、 2つ以上の結果をマージした形で結果を得る場合、 実際はサーバは、その回数だけ問い合わせを実行しています。 つまり、クライアントからサーバへのラウンドトリップは 1回だけですが、サーバ内部では複数の問い合わせが実行されています。 データ件数が膨大である場合は、テーブルの分散は効果的ですが、 少量データである場合の分散は逆効果である場合がありますので、 ご注意ください。

nono_taro
質問者

お礼

アドバイスありがとうございました。 やっと、やりたいことが実現できました! この度はお忙しい中、誠にありがとうございました。

その他の回答 (2)

  • SUPER-NEO
  • ベストアンサー率38% (706/1857)
回答No.3

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

回答No.1

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

nono_taro
質問者

お礼

アドバイス、ありがとうございました。 こんなに簡単にできるとは思っていませんでした。 お恥ずかしい限りです。

関連するQ&A