选择随机行,然后从另一个表中按列排序

时间:2013-07-05 16:03:33

标签: mysql

我理解如何选择随机行并按特定列排序,但我的问题是我需要按不同表中的列对行进行排序。

示例:

SELECT *
FROM (
    SELECT event_id, data_id
    FROM events
    WHERE category_id=1
    ORDER BY RAND()
    LIMIT 5) c
ORDER BY creation_date;

因此,如果creation_date位于事件表中,则此查询可以正常工作,但creation_date位于名为“data”的表中。因此,events表中的data_id是creation_date所在的数据表的外键。

我的目标是从事件表中选择5个RANDOM行,然后按照数据表中的creation_date对它们进行排序。

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

SELECT * 
FROM (
  SELECT 
    event_id, 
    data_id 
  FROM 
    events 
  WHERE 
    category_id = 1 
  ORDER BY RAND() 
  LIMIT 5) c 
  INNER JOIN data d ON d.data_id = c.data_id
ORDER BY 
  d.creation_date;