Неактивные пользователи SQL

V
На сайте с 28.09.2012
Offline
75
544

Помогите написать SQL код. Неактивный полозоватеть тот у кого есть записи в таблице user_packet_groups(их может быть 0 для одного логина, а может и 10), но ни одной где time_till больше time(). Потом по полю login склеить с таблицей users поле тоже login.

Вот структура таблиц:

users

login - email

test1 - fsd@mail.ru

test2 - f1sd@mail.ru

test3 - f2sd@mail.ru

user_packet_groups

login - time_till

test1 - 1436561448

test1 - 1434541448

test2 - 1494561448

LovelAss
На сайте с 05.06.2009
Offline
96
#1

SELECT * FROM `users` WHERE `login` NOT IN (SELECT DISTINCT `login` FROM `user_packet_groups` WHERE `time_till` > '".time()."')

V
На сайте с 28.09.2012
Offline
75
#2
LovelAss:
SELECT * FROM `users` WHERE `login` NOT IN (SELECT DISTINCT `login` FROM `user_packet_groups` WHERE `time_till` > '".time()."')

Такой код нашел пользователей, каких нет в таблице user_packet_groups. А нужно обязательно чтоб они были и у них небыло записей где time_till > time()

LovelAss
На сайте с 05.06.2009
Offline
96
#3

Испробуйте такой вариант


SELECT `u`.*
FROM `users` AS `u`
INNER JOIN `user_packet_groups` AS `upg` USING(`login`)
WHERE MAX(`upg`.`time_till`) > '".time()."'

или


SELECT `u`.*
FROM `users` AS `u`
INNER JOIN `user_packet_groups` AS `upg` USING(`login`)
GROUP BY `login`
HAVING MAX(`upg`.`time_till`) > '".time()."'

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий