2012-05-18 2 views
0

Мне нужно проверить, какие пользователи добавили a каждый день ('to_date' показывает день) с 20 дней.Получите пользователей, которые вставили строку каждый день

Спасибо за ваш помогает


**Table Structer** 
# id   (int pk) 
# user_id (int fk) 
# item_id (int fk) 
# to_date (datetime)  
+0

Есть ли ограничение, запрещающее пользователям вводить элемент более чем один раз в день? – Alnitak

+0

подсчитывает элементы, group by user_id и фильтрует по дате, чтобы быть между сегодняшним днем ​​и 20 днями назад. – ericosg

+0

@ericosg, который не работает, если пользователь может ввести более одного раза в день, за мой комментарий – Alnitak

ответ

1

Это должно работать:

SELECT user_id, COUNT(DISTINCT to_date) AS n 
FROM  mytable 
WHERE  to_date > DATE_SUB(CURRENT_DATE(), INTERVAL 20 DAY) 
GROUP BY user_id 
HAVING n = 20 

Вам может понадобиться настроить положение DATE_SUB в соответствии с вашими требованиями.

+0

спасибо @Alnitak. Я могу продолжить с вашего ответа –

+0

это недостающая часть 'GROUP BY user_id' –

+0

@ UğurÖzpınar извините, да, у меня было это, когда я протестировал ее, но пропустил ее в копировании и вставке – Alnitak