dポイントプレゼントキャンペーン実施中!

たとえば次のような、都道府県ごとのテーブルがあり、
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

よろしくお願いします。

A 回答 (2件)

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;

こんなんで、動くでしょう。
    • good
    • 1
この回答へのお礼

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

お礼日時:2008/11/19 21:58

MySQLのバージョンは?



UNIONでいけそうですが・・・
最初のテーブルの設計をtokyoとosakaに分けなければいいのでは?
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/11/19 21:54

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