Je vous suggère d'avoir une table de produits "maître", qui répertorie tous les produits, qu'ils soient vendus ou non sur tous sites, ou un seul. Ensuite, rejoignez à partir de cela chacun des tableaux de tarification du site Web. Essayez de faire correspondre le nom du produit. Dans sa forme la plus simple, la requête ressemblerait à :
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;
Vous devrez peut-être essayer de joindre la marque et le modèle, c'est-à-dire on t1.brand = p.brand and t1.model = p.model
, ou d'autres critères si le nom n'est pas unique.
les prix du site seront nuls s'ils ne vendent pas de produit.
Pour remplir rapidement le produit, vous pouvez exécuter ceci :
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;
Pour info, l'utilisation de UNION
(plutôt que UNION ALL
) fait en sorte que la sortie de l'union ne produise que des lignes uniques