Добрый день
Есть 2 таблицы
CREATE TABLE IF NOT EXISTS `table1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`bill` int(11) DEFAULT NULL,
`product` int(11) DEFAULT NULL,
`date` date DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
INSERT INTO `table1` (`id`, `bill`, `product`, `date`) VALUES (1, 1, 1, '2013-04-01'), (2, 1, 2, '2013-04-01'), (3, 2, 1, '2013-04-16'), (4, 3, 3, '2013-04-18');
CREATE TABLE IF NOT EXISTS `table2` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`product` int(11) DEFAULT NULL,
`price` decimal(20,2) DEFAULT NULL,
`date_from` date DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
INSERT INTO `table2` (`id`, `product`, `price`, `date_from`) VALUES (1, 1, '2.00', '2013-03-31'), (2, 1, '5.00', '2013-04-15'), (3, 2, '1.00', '2013-03-31'), (4, 3, '2.00', '2013-03-31');
В первой таблице содержится история покупок, во второй цены, и число с которого они действуют
необходимо выбрать из первой таблицы все товары и из второй таблицы цены, притом что цена на дату покупки должна быть максимально близкой к предидущему изменению цен.
Я делаю запросом
SELECT * FROM table1 AS t1 LEFT JOIN table2 AS t2 ON t1.product = t2.product WHERE date > date_from
но здесь есть лишние записи из преидущих периодов. Собственно вопрос в том, как отобрать записи с максимальной датой и соотв. этой дате ценой