@Skit25
на всё воля Бога

Как выбрать посты пользователя, где не было постов три дня?

Есть пользователи и посты. Нужно выбрать пользователей и посты, в том случае, если у пользователя не было постов три дня.

Можно ли это сделать в один запрос?

MyISAM

users (id)
-John Doe
-Duke Nukem

posts (user_id, create_date type DATE)
-one
-two
-three

Или как это грамотно сделать. Пользователей 10к+, постов 240к+.
  • Вопрос задан
  • 312 просмотров
Решения вопроса 2
kpa6uu
@kpa6uu
Программист Талибана [Пыхерский Алибаба]
SELECT * FROM `users` AS `user`
JOIN
`posts` AS `post`
ON
`post`.`user_id` = `user`.`id`
WHERE
`user`.`id` NOT IN (SELECT DISTINCT `user_id` FROM `posts` WHERE `create_date` >= {сюда_вставить_время});


что-то подобное
Ответ написан
@BorisKorobkov Куратор тега MySQL
Web developer
SELECT user_id 
FROM posts 
GROUP BY user_id
HAVING MAX(`create_date`) < '2017-07-02';


Если нужна более подробная инфа по юзеру, то
SELECT users.* 
FROM users,
(вышеуказанный запрос) t
WHERE users.id = t.user_id;


Что значит "выбрать посты"? Все 100500 постов?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы