UNIONでテーブルを連結して検索するサンプルクエリ
hoge0とhoge1テーブルあったとする。
それぞれをdatesフィールドで降順ソートし、連結して先頭から5件を取得するサンプル。
( SELECT no, name, dates, 0 //※ FROM hoge0 ORDER BY dates DESC ) UNION ALL ( SELECT no, name, dates, 1 //※ FROM hoge1 ORDER BY dates DESC ) LIMIT 0, 5
連結してからソートする場合は、最後のLIMITの前でORDER BYする。
※の箇所について
結果セットに0というフィールが追加され、hoge0からのレコードには0が、hoge1からのレコードには1が格納される。
どちらのテーブルから抜き出されたかを区別するのに使えそう。
ダサいけど、色々調べて分からなかったのでこれでやってみた。