- ベストアンサー
複数(2つ)のテーブルで検索を行いたい
MySQL 3.23です。 select count(*) as hit from freedata where (A=10 or B=10); という構文と select count(*) as hit from sharedata where A=10; という構文を一行にしたOR検索を行いたいのですが、方法はありますか? 要は、同一のキーワードで、二つのテーブルを検索対象にしたいのです。ご教授よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
つまり、freedataとsharedataは同じ構造のテーブルということですね? 3.23系はUNIONが動かないようなので、 テンポラリに流し込んで表示することになりますね。 freedataテーブル A B C 1 1 1 2 2 2 5 10 3 sharedataテーブル A B C 3 3 3 4 4 4 10 12 7 結果 A B C 5 10 3 10 12 7 CREATE TEMPORARY TABLE `temp_amount`(`A` INT,`B` INT,`C` INT); INSERT INTO `temp_amount` SELECT `A`,`B`,`C` FROM `freedata` WHERE 10 IN (`A`,`B`,`C`); INSERT INTO `temp_amount` SELECT `A`,`B`,`C` FROM `sharedata` WHERE 10 IN (`A`,`B`,`C`); SELECT `A`,`B`,`C` FROM `temp_amount`;
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
どのようなデータからどのような結果を希望しているかによりますね。 freedataとsharedataの関連がわからない限り、 結果表示がぼろぼろになりますよー
補足
■freedataテーブル A列の値 5 B列の値 10 C列の値 3 ■sharedataテーブル A列の値 10 B列の値 12 C列の値 7 こういうデータがあって、 キーワード「10」を検索した時、数値10を示しているのが何件あるかを表示させたい、という感じです。上の例では2件です。
お礼
確かに3.23系だとunionが動かないのでちょっと回り道になってしまいましたね(汗)。 どうもご回答ありがとうございました。