1
有什麼方法可以引用聯合中的子查詢?MYSQL,聯盟中的子查詢引用
我試圖做類似以下內容,想避免臨時表,但子查詢從一個更大的數據集是很有意義只做一次繪製..
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。
因爲tbl只是第一個子查詢的引用。也許這個名字有點混亂。廣告表很大,但在子查詢之後它只有大約90行。我會更新別名以避免混淆。 – christian 2012-04-15 17:24:55
明白了。更新了我的答案。 – 2012-04-15 17:33:08
我的初步測試表明,以下是我想要的! SELECT * FROM(SELECT * FROM ads WHERE state ='FL'and city ='Maitland'ORDER BY RAND())sq GROUP BY sq .spot ...所以GROUP BY只爲每個子句返回一個結果?我在想這跟ORDER BY很相似。謝謝 – christian 2012-04-15 18:22:49