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

Я немного новый для SQL, и я не могу найти решение своей проблемы. У меня две таблицы. В таблице A я храню много комментариев, каждый из которых имеет уникальный идентификатор.

В таблице B я сохраняю каждое голосование (например = 1 и не нравится = 0) для каждого комментария с датой. Будет запись для каждого голосования, поэтому для каждого комментария в таблице A. будет множество строк.

Мне нужно получить все комментарии и отсортировать их так, чтобы еженедельные наиболее понравившиеся комментарии были наверху, но я не уверен, как это сделать.

Вот что я до сих пор, но не знаю, как продолжить:

SELECT * FROM comment INNER JOIN logs ON comment.c_id=logs.c_id WHERE logs.daterate >= DATE_SUB(CURDATE(), INTERVAL 8 DAY) AND logs.rated=1 

Чтобы уточнить, мне нужно получить все записи из журналов с оценкой = 1 на прошлой неделе и отсортировать их по наиболее частому c_id в порядке убывания и получить отдельную c_id для каждой строки … если это имеет смысл

Пожалуйста, задавайте вопросы, если я не проясню, спасибо!

  SELECT * FROM comment INNER JOIN (SELECT comment.c_id, COUNT(*) AS cnt FROM comment INNER JOIN logs ON comment.c_id=logs.c_id WHERE logs.daterate >= DATE_SUB(CURDATE(), INTERVAL 8 DAY) AND logs.rated=1 GROUP BY comment.c_id) x ON x.c_id = comment.c_id ORDER BY x.cnt DESC 

Попробуй это –

Сначала я запросил все записи из таблицы журналов, которые оцениваются 1 и составляют от 7 дней с текущей даты, а также упорядочиваются на основе количества c_id. Затем присоединился к ней с помощью таблицы COmments.

 SELECT Comment.* FROM comment C INNER JOIN (SELECT logs.c_id as c_id,count(logs.c_id) as logcount FROM logs WHERE logs.rated=1 AND logs.daterate BETWEEN GETDATE() AND DATEADD(day,-7,getdate()) Group by logs.c_id order by count(logs.c_id) desc) X ON C.c_id = X.c_id ORDER BY X.logcount DESC