我理解如何选择随机行并按特定列排序,但我的问题是我需要按不同表中的列对行进行排序。
示例:
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对它们进行排序。
感谢任何帮助。
答案 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;