unirse a dos tablas sin perder valores relevantes

Tengo dos tablas que representan una base de datos para productos de clientes y productos de sus competidores:

tmp_match - from_product_id y to_product_id que representan coincidencias entre el producto del cliente y el producto de la competencia, respectivamente.

tmp_price_history: muestra el precio de cada producto por fecha.

Estoy intentando escribir una consulta que enumerará todas las fechas de la tablatmp_price_history. Para cada fecha, quiero ver el precio del producto del cliente frente al precio del producto de la competencia de acuerdo con los pares de coincidencias de productos en la tablatmp_match, independientemente de si hubo un registro de historial de preciospara productos del cliente o productos de la competencia o ambos:

si ambos precios están disponibles para una fecha específica: enumere ambos en sus columnas

si solo hay un registro para el producto del cliente: muestre solo el precio del cliente (y deje en blanco la columna de la competencia).

si solo hay un registro para el producto de la competencia, muestre el precio de la competencia en su columna.

Resultado Esperado

date    from_product_id to_product_id   cust_price  comp_price
1       1               11              99          95
2       1               11              98          94
1       1               12                          92
2       1               12                          91
2       2                               108                 

Intenté lograr eso usando esta consulta:

 select cust_hist.date, from_product_id, to_product_id, cust_hist.price as cust_price,comp_hist.price as comp_price
from tmp_match as matches
       left join tmp_price_history cust_hist
         on cust_hist.product_id = matches.from_product_id
       left join tmp_price_history comp_hist
         on  comp_hist.product_id = matches.to_product_id
;

pero no alcanza mi objetivo como se puede ver en estesql snippet.

Respuestas a la pregunta(1)

Su respuesta a la pregunta