こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

複数テーブルをまとめてソート

たとえば次のような、都道府県ごとのテーブルがあり、
ID、名前、得点の列があるとします。

テーブル1(テーブル名:tokyo)
ID NAME SCORE
1 yamada 89
2 tanaka 45

テーブル2(テーブル名:osaka)
ID NAME SCORE
1 sato 65
2 suzuki 22

これらのテーブルをまとめて、全国で得点が上位順に並べたいと
思っております。また、結果にはどのテーブルに所属するものかを
判別する列を追加したいのですが、どういう文を記述したらよいのでしょうか?
望みの結果は次のようなものです。

NAME SCORE TABLE_NAME
yamada 89 tokyo
sato 65 osaka
tanaka 45 tokyo
suzuki 22 osaka

よろしくお願いします。

投稿日時 - 2008-11-19 12:43:37

QNo.4490952

すぐに回答ほしいです

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

yambejpさんに言うとおり、テーブルを1つにして、oosakaとかtokyoをカラムの1つに入れればよさそうですが、何か事情があるんでしょうね。まあ、テーブルは例のようですから。

SELECT NAME, SCORE, 'oosaka' AS TABLE_NAME
FROM oosaka
UNION
SELECT NAME, SCORE, 'tokyo' AS TABLE_NAME
FROM tokyo
ORDER BY SCORE DESC;

こんなんで、動くでしょう。

投稿日時 - 2008-11-19 16:46:31

お礼

丁寧に教えていただいて、ありがとうございます。
望みどおりの結果がでました。
osakaとtokyoを分けなかったのは、上記のカラム以外にそれぞれ異なる
カラムを持っているためです。
助かりました(^o^)

投稿日時 - 2008-11-19 21:58:34

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.1

MySQLのバージョンは?

UNIONでいけそうですが・・・
最初のテーブルの設計をtokyoとosakaに分けなければいいのでは?

投稿日時 - 2008-11-19 14:17:26

お礼

ご回答ありがとうございます。
UNIONというものがあったんですね。全く知りませんでした。
本を買って勉強します(^_^;)

投稿日時 - 2008-11-19 21:54:30

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-