- 締切済み
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` という風に書いてみました、結果としてはよさそうですが 方法としては間違ってないでしょうか? 他にいい方法があればアドバイスをお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.1
>方法としては間違ってないでしょうか? 効率的かどうかはともかくロジックはあっていると思います SELECT *している時点でインデックスは期待できないですしね >他にいい方法があればアドバイスをお願いします。 あえて指摘するなら構造が同じテーブルなら、一つにまとめてしまった方が 効率がいいのは間違いないです (おそらくなんらかの理由でわけているのでしょうけど)