ЗАКАЗАТЬ по количеству записей с отметкой времени <24 часов (MySQL)

0

У меня есть таблица с записями с отметками времени DATETIME и поле ID. Я хочу сделать запрос MySQL (в моем PHP script), который выбирает из другой таблицы идентификатор соответствия. Я хочу сделать какое-то соединение, которое будет сортироваться по количеству записей в первой таблице с отметкой времени более чем за 24 часа. Итак, в основном, если в первой таблице есть 30 записей с меткой времени менее 24 часов с идентификатором "334", тогда я хочу выбрать строку из второй таблицы с идентификатором 334. И это должно быть до входа с идентификатором "234", который имеет только 20 записей за последние 24 часа.

Надеюсь, это понятно... Я очень зациклен на том, как это сделать, поэтому спасибо за любую помощь.: D

Теги:
sql-order-by

2 ответа

2

Использование:

  SELECT a.*, 
         x.num
    FROM TABLE_A a
    JOIN (SELECT t.id,
                 COUNT(*) AS num
            FROM TABLE_B t
           WHERE t.timestamp BETWEEN DATE_SUB(NOW, INTERVAL 1 DAY)
                                 AND NOW()
        GROUP BY t.id) x ON x.id = a.id
ORDER BY x.num DESC
  • 0
    Спасибо за ваш ответ тоже! Я тоже попробую и вернусь к вам.
  • 0
    кажется, что вы потеряли = a.id в предложении ON . Не так ли?
Показать ещё 2 комментария
0

Try:

Select b.ColA, b.ColB, b.ColC,-- etc.
  Count(*) count
From TableB b 
   Join TableA a
     On a.Id = b.Id
        And a.TimeStamp > getDate() - 1
Group By b.ColA, b.ColB, b.ColC -- etc.
Order By Count(*) Desc

Если вы также хотите видеть строки из TableB, которые не имеют временных меток за последние 24 часа, используйте внешнее соединение:

 Select b.ColA, b.ColB, b.ColC,-- etc.
  Count(*) count
 From TableB b 
   Left Join TableA a
     On a.Id = b.Id
        And a.TimeStamp > getDate() - 1
 Group By b.ColA, b.ColB, b.ColC -- etc.
 Order By Count(*) Desc
  • 0
    Спасибо за ваш ответ! Мне понадобится некоторое время, чтобы попробовать все и выяснить, что он делает, но я дам вам знать, если это сработает для меня. Еще раз спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню