Нужна помощь со сложным оператором 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, для которой коррелированные подзапросы плохо оптимизированы. Любой способ сделать это без использования коррелированного подзапроса?

Ответы на вопрос(5)

Ваш ответ на вопрос