Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytanie MySQL do porównania cen

Proponuję mieć „główną” tabelę produktów, która zawiera wszystkie produkty, niezależnie od tego, czy są one sprzedawane na wszystkie witryny lub tylko jedną. Następnie dołącz z tego do każdej z tabel cenowych na stronie. Spróbuj dopasować nazwę produktu. W najprostszej formie zapytanie wyglądałoby tak:

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;

Być może będziesz musiał spróbować dołączyć na podstawie marki i modelu, tj. on t1.brand = p.brand and t1.model = p.model , lub inne kryteria, jeśli nazwa nie jest unikalna.

ceny witryn będą zerowe, jeśli nie sprzedają produktu.

Aby szybko zapełnić produkt, możesz uruchomić to:

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, użycie UNION (zamiast UNION ALL ) sprawia, że ​​na wyjściu unii powstają tylko unikalne wiersze




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak obliczyć średnią ruchomą za pomocą MySQL?

  2. phpMyBackupPro — internetowe narzędzie do tworzenia kopii zapasowych MySQL dla systemu Linux

  3. Wybierz rekordy z TERAZ() -1 dzień

  4. Jak zaktualizować z Select za pomocą opcji Join

  5. Czy Markdown (z strip_tags) wystarczy do powstrzymania ataków XSS?