人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

複数個のテーブルを同時に検索したいです。

例えば、tableAとtableBが合ったとします。
これらには、共通のカラム名のものは無いのですが
WHERE keyword='テスト'のように検索をしたいのです。

要は下記のような事をしたいのです。

tableAにnameというカラムがある
tableBにname2というカラムがある
この2つのテーブルと異なるカラム名を同時に検索し、結果はresultという名前にして、取得する。


●質問者: makocan
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● 井戸端さん
●67ポイント

UNIONで結合するのが楽よ。

SELECT name AS result FROM tableA WHERE keyword = 'テスト'
UNION ALL
SELECT name2 FROM tableB WHERE keyword = 'テスト'

ほとんどのデータベースでASは省略できるんだけどリネームしてるってわかりやすいようにASを入れておいたわ。


makocanさんのコメント
ありがとうございます!

2 ● snow0214
●67ポイント

WHERE keyword='テスト' というのは、カラム name および name2 を検索する意味だと思うので、SQL文は下のようになります。

SELECT name AS result FROM tableA WHERE name = 'テスト'
UNION ALL SELECT name2 AS result FROM tableB WHERE name2 = 'テスト';

3 ● sasada
●66ポイント

結果列をresult、検索条件をkeyword = 'テスト'とすると仮定して、

SELECT a.name AS result FROM tableA AS a WHERE a.keyword = 'テスト'
UNION ALL
SELECT b.name2 AS result FROM tableB AS b WHERE b.keyword = 'テスト'

でできると思います。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ