будет иметь только пары 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
;
но это не достигает моей цели, как можно увидеть в этомфрагмент кода.