• 締切済み

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` という風に書いてみました、結果としてはよさそうですが 方法としては間違ってないでしょうか? 他にいい方法があればアドバイスをお願いします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>方法としては間違ってないでしょうか? 効率的かどうかはともかくロジックはあっていると思います SELECT *している時点でインデックスは期待できないですしね >他にいい方法があればアドバイスをお願いします。 あえて指摘するなら構造が同じテーブルなら、一つにまとめてしまった方が 効率がいいのは間違いないです (おそらくなんらかの理由でわけているのでしょうけど)

関連するQ&A