Mysql
 sql >> Database >  >> RDS >> Mysql

Query MySQL per il confronto dei prezzi

Ti suggerisco di avere una tabella prodotti "principale", che elenca tutti i prodotti, indipendentemente dal fatto che siano venduti su tutti siti, o solo uno. Quindi unisciti a ciascuna delle tabelle dei prezzi del sito Web. Prova ad abbinare il nome del prodotto. Nella sua forma più semplice, la query sarebbe simile a:

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;

Potrebbe essere necessario provare a unirti su marca e modello, ad esempio on t1.brand = p.brand and t1.model = p.model o altri criteri se il nome non è univoco.

i prezzi del sito saranno nulli se non vendono un prodotto.

Per popolare rapidamente il prodotto, puoi eseguire questo:

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;

Cordiali saluti, l'uso di UNION (anziché UNION ALL ) fa in modo che l'output dell'unione produca solo righe univoche