ユニオンでサブクエリを参照する方法はありますか?
私は次のようなことをしようとしていますが、一時テーブルを避けたいのですが、サブクエリははるかに大きなデータセットから引き出されるので、一度だけ行うのが理にかなっています..
SELECT * FROM (SELECT * FROM ads WHERE state='FL' AND city='Maitland' AND page='home' ORDER BY RAND()) AS sq WHERE spot = 'full-banner' LIMIT 1
UNION
SELECT * FROM sq WHERE spot = 'leaderboard' LIMIT 1
UNION
SELECT * FROM sq WHERE spot = 'rectangle1' LIMIT 1
UNION
SELECT * FROM sq WHERE spot = 'rectangle2' LIMIT 1
.... etc,,
結果セットの単一の列に DISTINCT を指定できないのは残念です。