Я предлагаю вам иметь «основную» таблицу продуктов, в которой перечислены все продукты, независимо от того, продаются они на всех сайтах или только на одном.Затем присоединитесь к каждой таблице цен на сайте.Попробуйте сопоставить название продукта.В простейшей форме запрос выглядит следующим образом:
select
p.*,
t1.price as site1_price,
t2.price as site2_price,
t3.price as site3_price
from product p
left join website1 t1 on t1.name = p.name
left join website2 t2 on t2.name = p.name
left join website2 t3 on t3.name = p.name;
Возможно, вам придется попробовать объединить марку и модель, например on t1.brand = p.brand and t1.model = p.model
, или некоторые другие критерии, если имя не уникально.
цены на сайте будут нулевыми, если они не продают продукт.
Чтобы быстро заполнить продукт, вы можете запустить это:
insert into product (name, brand, model, ...)
select name, brand, model, ... from website1
union
select name, brand, model, ... from website2
union
select name, brand, model, ... from website3;
FYI, использование UNION
(вместо UNION ALL
) выводит из объединения только уникальные строки