У меня есть этот запрос, который работает как нужно, но, похоже, должен быть лучший способ выполнить то, что я хочу:
SELECT `x`.*
FROM (
SELECT `m`.`id`,
`m`.`email`,
MAX(`s`.`end`) AS `max_end`
FROM `members` AS `m`
INNER JOIN `memberships` AS `s`
ON `m`.`id` = `s`.`member_id`
GROUP BY `m`.`id`,
`m`.`email`
) AS `x`
WHERE `x`.`max_end` = '2010-02-28 23:59:59'
Я ищу участника, членство которого заканчивается на определенную дату,В таблице memberships
есть столбцы start
и end
, содержащие даты, когда членство активно.Я только хочу посмотреть на последний завершающийся период членства, следовательно, MAX()
и GROUP BY
в подзапросе.