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

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検索を行いたいのですが、方法はありますか?

要は、同一のキーワードで、二つのテーブルを検索対象にしたいのです。ご教授よろしくお願い致します。

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

確かに3.23系だとunionが動かないのでちょっと回り道になってしまいましたね(汗)。

どうもご回答ありがとうございました。

お礼日時:2007/02/20 16:33

どのようなデータからどのような結果を希望しているかによりますね。


freedataとsharedataの関連がわからない限り、
結果表示がぼろぼろになりますよー

この回答への補足

■freedataテーブル
A列の値 5
B列の値 10
C列の値 3

■sharedataテーブル
A列の値 10
B列の値 12
C列の値 7

こういうデータがあって、
キーワード「10」を検索した時、数値10を示しているのが何件あるかを表示させたい、という感じです。上の例では2件です。

補足日時:2007/02/19 16:00
    • good
    • 0

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