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

締切り済みの質問

UNION ALLしたテーブルを個別に並べ変え

table1、table2、table3というテーブルがあり
このそれぞれをidというカラムで並び替えたものを結合するので考えました。

SELECT * FROM `table1`
UNION ALL
SELECT * FROM `table2`
UNION ALL
SELECT * FROM `table3`
ORDER BY `id`
にすると全てを結合したものを並び替えるので

SELECT *, '1' AS tbl FROM `table1`
UNION ALL
SELECT *, '2' AS tbl FROM `table2`
UNION ALL
SELECT *, '3' AS tbl FROM `table3`
ORDER BY `tbl`,`id`
という風に書いてみました、結果としてはよさそうですが
方法としては間違ってないでしょうか?

他にいい方法があればアドバイスをお願いします。

投稿日時 - 2012-09-27 18:03:51

QNo.7720037

すぐに回答ほしいです

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

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

回答(1)

ANo.1

>方法としては間違ってないでしょうか?

効率的かどうかはともかくロジックはあっていると思います
SELECT *している時点でインデックスは期待できないですしね

>他にいい方法があればアドバイスをお願いします。

あえて指摘するなら構造が同じテーブルなら、一つにまとめてしまった方が
効率がいいのは間違いないです
(おそらくなんらかの理由でわけているのでしょうけど)

投稿日時 - 2012-09-27 19:17:25

あなたにオススメの質問