Так что в основном я пытаюсь выбрать 5 случайных строк из таблицы category_event, а затем сопоставить fk_event_id из таблицы category_event с идентификатором из таблицы событий и, наконец, заказать 5 случайных rows by start_time из таблицы событий.MySQL: проблема, связанная с двумя таблицами
У меня есть 25 строк в таблице category_event с fk_category_id = 2, но когда я запускаю запрос, иногда он возвращает 5 строк, в следующий раз 4 строки, в следующий раз 5 строк, в следующий раз 3 строки и т. Д. Это должно быть 5 каждый раз, когда ...
Это то, что я в настоящее время:
SELECT * FROM
(
SELECT fk_event_id
FROM category_event
WHERE fk_category_id=2 AND status = 'enabled'
ORDER BY RAND() LIMIT 5
) c
INNER JOIN events e
ON e.id = c.fk_event_id
ORDER BY e.start_time;
Любая помощь очень ценится :)
Пожалуйста, покажите некоторые данные из таблиц. Возможно, вы непреднамеренно ограничиваете результаты в предложении WHERE или из-за INNER JOIN. – Anton
fk_event_id похоже, что у него должно быть ограничение внешнего ключа на столбец «id» событий, это правильно? (потому что симптомы, которые вы описываете, могут «несколько строк без соответствия событиям») –
Можете ли вы предоставить структуру таблицы и данные выборки –