Выберите случайные строки, затем отсортируйте по столбцу из другой таблицы

Вопрос:

Я понимаю, как выбирать случайные строки и сортировать по определенному столбцу, но моя проблема в том, что мне нужно сортировать строки по столбцу в другой таблице.

Пример:

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

Таким образом, этот запрос будет работать нормально, если create_date был в таблице событий, а create_date — в таблице, называемой «данные». Таким образом, data_id в таблице событий является внешним ключом в таблице данных, где создается create_date.

Моя цель в этом состоит в том, чтобы выбрать 5 строк RANDOM из таблицы событий, но затем отсортировать их по команде create_date из таблицы данных.

Любая помощь приветствуется.

Лучший ответ:
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;

Оцените статью
TechArks.Ru
Добавить комментарий