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