Le sugiero que tenga una tabla de productos "maestra", que enumere todos los productos, independientemente de si se venden en todos sitios, o solo uno. Luego únase desde eso a cada una de las tablas de precios del sitio web. Intente hacer coincidir el nombre del producto. En su forma más simple, la consulta se vería así:
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;
Es posible que deba intentar unirse en marca y modelo, es decir, on t1.brand = p.brand and t1.model = p.model
, o algún otro criterio si el nombre no es único.
los precios del sitio serán nulos si no venden un producto.
Para completar rápidamente el producto, puede ejecutar esto:
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, el uso de UNION
(en lugar de UNION ALL
) hace que la salida de la unión produzca solo filas únicas