У меня есть две таблицы:
mysql> desc vat_rates; +-------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------------+------+-----+---------+-------+ | rate_id | varchar(5) | NO | PRI | NULL | | | name | varchar(255) | NO | | NULL | | | type | enum('O','I') | NO | | NULL | | | default | tinyint(1) | YES | | 0 | | +-------------+---------------+------+-----+---------+-------+ 6 rows in set (0.00 sec) mysql> desc vat_rates_details; +-------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+-------+ | rate_id | varchar(10) | NO | | NULL | | | effect_date | date | NO | | NULL | | | rate | float | NO | | NULL | | +-------------+-------------+------+-----+---------+-------+ 3 rows in set (0.00 sec)
Мне нужен запрос, который дает мне vat_rates.name, vat_rates.rate_id, vat_rates_details.rate ГДЕ effect_date равен MAX (), но ‹=, чем now ().
Для упрощения, мне нужно выбрать все vat_rates с полем ставки, являющимся последней датой на основе effect_date, но не в будущем.
Пример с данными:
vat_rates:
rate_id = 'L9'
name = 'MyVatName'
type = 'O'
по умолчанию = 1
vat_rates_details (строка 1):
rate_id = 'L9'
effect_date = '2000-01-01'
rate = 20
vat_rates_details (строка 2):
rate_id = 'L9'
effect_date = '2010-06-01'
rate = 19
vat_rates_details (строка 3):
rate_id = 'L9'
effect_date = '2010-07-01'
rate = 21
Ожидаемый результат:
+-------------+-------------+------+ | rate_id | name | rate | +-------------+-------------+------+ | L9 | MyVatName | 19 | +-------------+-------------+------+
Спасибо за ваше время :)
РЕДАКТИРОВАТЬ: Ожидаемая оценка - 19, а не 20. Спасибо Джастину.