Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql заявка за сравнение на цените

Предлагам ви да имате „основна“ продуктова таблица, която изброява всички продукти, независимо дали се продават на всички сайтове или само един. След това се присъединете от това към всяка от таблиците с цените на уебсайта. Опитайте да съпоставите името на продукта. В най-простата си форма заявката ще изглежда така:

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;

Може да се наложи да опитате да се присъедините за марка и модел, т.е. on t1.brand = p.brand and t1.model = p.model , или друг критерий, ако името не е уникално.

цените на сайта ще бъдат нулеви, ако не продават продукт.

За бързо попълване на продукта можете да изпълните това:

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, използването на UNION (вместо UNION ALL ) прави изходът на съюза да произвежда само уникални редове




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да кача изображение на PHP и да вмъкна път в MySQL?

  2. Как да деактивирате и активирате всички ограничения в таблицата mysql вкл. ПК ФК ЧК УНИ и др

  3. Множество копия на MySQL на една машина

  4. Свържете се с опция за локален файл в MySql Workbench

  5. Мога ли да използвам MySQL LOAD XML LOCAL INFILE, ако редовете ми нямат „име“?