У меня есть две таблицы:
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 ГДЕ значение_даты равно MAX (), но <= чем сейчас (). </p>
Упрощенно, мне нужно выбрать все vat_rates с полем оценки, являющимся последней датой, основанной на действии_даты, но не в будущем.
Пример с данными:
vat_rates:
rate_id = 'L9'
name = 'MyVatName'
type = 'O'
default = 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'
норма = 21
Ожидаемый результат:
+-------------+-------------+------+
| rate_id | name | rate |
+-------------+-------------+------+
| L9 | MyVatName | 19 |
+-------------+-------------+------+
Спасибо за ваше время:)
РЕДАКТИРОВАТЬ: Ожидаемая ставка 19, а не 20. Ткс Джастин.