0

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

例子:

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 在 events 表中,则此查询可以正常工作,但 creation_date 在名为“data”的表中。所以 events 表中的 data_id 是 creation_date 所在数据表的外键。

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

任何帮助表示赞赏。

4

1 回答 1

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;
于 2013-07-05T16:08:30.047 回答