Нужна помощь со сложным оператором Join в SQL
Как можно объединить таблицу с редким числом дат и другую таблицу с исчерпывающим числом дат, чтобы промежутки между редкими датами принимали значения предыдущей редкой даты?
Наглядный пример:
PRICE table (sparse dates):
date itemid price
2008-12-04 1 $1
2008-12-11 1 $3
2008-12-15 1 $7
VOLUME table (exhaustive dates):
date itemid volume_amt
2008-12-04 1 12345
2008-12-05 1 23456
2008-12-08 1 34567
2008-12-09 1 ...
2008-12-10 1
2008-12-11 1
2008-12-12 1
2008-12-15 1
2008-12-16 1
2008-12-17 1
2008-12-18 1
Желаемый результат:
date price volume_amt
2008-12-04 $1 12345
2008-12-05 $1 23456
2008-12-08 $1 34567
2008-12-09 $1 ...
2008-12-10 $1
2008-12-11 $3
2008-12-12 $3
2008-12-15 $7
2008-12-16 $7
2008-12-17 $7
2008-12-18 $7
Обновить:
Пара человек предложили коррелированный подзапрос, который достигает желаемого результата. (Коррелированный подзапрос = подзапрос, который содержит ссылку на внешний запрос.)
Это будет работать; однако, я должен был отметить, что платформой, которую я использую, является MySQL, для которой коррелированные подзапросы плохо оптимизированы. Любой способ сделать это без использования коррелированного подзапроса?