プロが教えるわが家の防犯対策術!

お世話になっております。
PHP4.4.1+MySQL4.1.15を使用しております。
複数のデータベースに含まれる複数のテーブルをひとつの大きなテーブルとして検索/ソートする方法はありませんでしょうか?
結合ではなく、全レコードを全て単体として検索/ソートをかけたいのです。
それぞれのデータベースに含まれるテーブルに、共通の項目があり、その共通の項目順にソートしたり、絞込をかけたりしたいのですが、調べてみても、どうしても結合(JOIN)に行き着いてしまいます。
JOINによる結合だと、共通の項目以外のレコードが表示されないので、これでは意味をなしません。
ご教授の程、お願い致します。

A 回答 (2件)

UNIONのこと?


テーブルをまたがるとさすがに期待するパフォーマンスがでないかも
テーブル設計によるチューニングの問題ですからね

>JOINによる結合だと、共通の項目以外のレコードが表示されない

完全外部結合はサポートされていませんがやり方によっては全レコードを拾えますね。

参考URL:http://dev.mysql.com/doc/refman/4.1/ja/union.html
    • good
    • 0
この回答へのお礼

本当にありがとうございます!
おっしゃる通り、UNIONで解決しました!
allを付けて検索したら、2つのテーブルのレコードを合算した結果が表示され、この結果に対し、絞込やソートが行えました。
本当に助かります!ありがとうございました!!

お礼日時:2008/06/07 16:28

 「複数のテーブルをひとつの大きなテーブルとして検索/ソートする方法」というのは、基本的にテーブルをJOINした状態で検索やソートをすることと同じなので、「全レコードを全て単体として検索/ソートをかけたいのです」は、このままでは無理です。


 JOINした状態でこのテーブルを新規作成し、その結合された新テーブルに対して、検索/ソートすれば良いと思います。
 「JOINによる結合だと、共通の項目以外のレコードが表示されない」というのは、リレーショナルデータベースの意味がないので、SELECT文で両者をJOINしただけで、必要項目を設定してないのではないですか?

 支障のない範囲で、両者のテーブルの項目、共通項目、ソートしたい項目名などを書けば、もっと明確な回答がみんなから得られると思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
JOINでは共通のキーのレコードのみに対して検索やソートを行う事になるので、私が得たい結果にはなりません。
UNIONで問題が解決しました。
ありがとうございます。

お礼日時:2008/06/07 16:26

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