【问题标题】:select rand() from subquery从子查询中选择 rand()
【发布时间】:2014-11-23 05:07:16
【问题描述】:

我的查询很简单:

SELECT tag_id 
from books_tags 
WHERE tag_id IN (SELECT tag_id 
                 FROM books_tags 
                 GROUP BY tag_id 
                 ORDER BY COUNT(tag_id) DESC 
                 LIMIT 100) 
ORDER BY RAND() 
LIMIT 1

我希望从里面的查询中随机选择一条记录。它不起作用,错误说 LIMIT 和 ORDER 不能出现在子查询中。

我不想在服务器端创建临时表或随机表。任何想法如何将其合并到 wone 查询中?

【问题讨论】:

    标签: sql random subquery


    【解决方案1】:

    您应该能够对INNER JOIN / LEFT OUTER JOIN 执行相同的操作

    SELECT a.tag_id 
    from books_tags a
    INNER JOIN  (SELECT tag_id 
                     FROM books_tags 
                     GROUP BY tag_id 
                     ORDER BY COUNT(tag_id) DESC 
                     LIMIT 100) b ON a.tag_id = b.tag_id
    ORDER BY RAND() 
    LIMIT 1
    

    【讨论】:

      猜你喜欢
      • 2019-04-04
      • 2012-02-13
      • 2021-11-25
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多