Sugiro que você tenha uma tabela de produtos "mestre", que liste todos os produtos, independentemente de serem vendidos em todos sites, ou apenas um. Em seguida, junte-se a cada uma das tabelas de preços do site. Tente combinar o nome do produto. Em sua forma mais simples, a consulta ficaria assim:
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;
Você pode ter que tentar juntar a marca e o modelo, ou seja,
on t1.brand = p.brand and t1.model = p.model
, ou algum outro critério se o nome não for exclusivo. os preços do site serão nulos se não venderem um produto.
Para preencher rapidamente o produto, você pode executar isto:
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, o uso de
UNION
(em vez de UNION ALL
) faz com que a saída da união produza apenas linhas únicas