будет иметь только пары customer_product, Competitor_product. но tmp_price_history может иметь любой продукт, который существует в tmp_match (с любой стороны)

я есть две таблицы, представляющие базу данных для продуктов клиента и продуктов его конкурентов:

tmp_match - from_product_id и to_product_id, представляющие совпадения между продуктом клиента и продуктом конкурента соответственно.

tmp_price_history - показывает цену каждого товара за дату.

Я пытаюсь написать запрос, который будет перечислять все даты из таблицыtmp_price_history, Для каждой даты я хочу видеть цену продукта клиента в сравнении с ценой продукта конкурента в соответствии с парами совпадений продуктов в таблице.tmp_matchнезависимо от того, была ли запись истории цендля продукта клиента или продукта конкурента или обоих:

если обе цены доступны на определенную дату - перечислите их обе в столбцах

если для продукта клиента есть только запись - показать только цену клиента (и оставить столбец конкурента пустым).

если есть запись только для товара-конкурента, укажите в столбце цену конкурента.

Ожидаемый результат:

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                 

Я пытался добиться этого с помощью этого запроса:

 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
;

но это не достигает моей цели, как можно увидеть в этомфрагмент кода.

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

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