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

Mysql-forespørgsel til prissammenligning

Jeg foreslår, at du har en "master" produkttabel, der viser alle produkter, uanset om de sælges på alle websteder eller kun én. Deltag derefter fra det til hver af webstedets pristabeller. Prøv at matche produktnavnet. I sin enkleste form ser forespørgslen ud som:

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;

Du skal muligvis prøve at deltage på mærke og model, dvs. on t1.brand = p.brand and t1.model = p.model , eller nogle andre kriterier, hvis navnet ikke er unikt.

webstedspriser vil være nul, hvis de ikke sælger et produkt.

For hurtigt at udfylde produktet kan du køre dette:

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, brugen af ​​UNION (i stedet for UNION ALL ) gør, at outputtet fra foreningen kun producerer unikke rækker




  1. SQL Server-fejl - HRESULT E_FAIL er blevet returneret fra et kald til en COM-komponent

  2. Mysql-forespørgsel for at udtrække domæner fra webadresser

  3. Erklære en variabel i en 'skrivebeskyttet' MySQL-database

  4. mysql-python installationsfejl:Kan ikke åbne inkludere filen 'config-win.h'