Используя MySQL, у меня есть следующая таблица с именем subscriptions
, показанная ниже
name, renewal_date, national_id
---------------------------------------
ted, 1/2/2010, A1111R
ben, 1/3/2010, A145E1
bob, 8/4/2009, A11C11
kate, 2/2/2010, A111E1
ted, 12/2/2011, A1111R
bob, 12/2/2014, A11C11
ben, 12/2/2016, A145E1
etc..
В таблице около 150000 записей. Каждый человек может иметь несколько подписок. Я хочу отобразить максимальное / последнее значение renewal_date
для каждой записи в списке, предоставленном мне для запроса. Вот мой SQL-оператор:
select d.name, d.renewal_date, d.national_id
from subscriptions d
where renewal_date= (select max(d1.renewal_date)
from subscriptions d1
where d1.national_id = d.national_id IN ('A1111R','A11C11', 'A145E1' ....));
Когда я запускаю запрос в phpmyadmin, он, похоже, не завершается, даже когда записей в предложении IN
немного.
Какой лучший способ сделать это? Я должен также сказать, что я еще не эксперт по SQL :-) Заранее спасибо