Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Truy vấn Mysql để so sánh giá

Tôi khuyên bạn nên có bảng sản phẩm "chính", liệt kê tất cả các sản phẩm, bất kể chúng có được bán trên tất cả trang web, hoặc chỉ một. Sau đó tham gia từ đó vào từng bảng định giá của trang web. Thử đối sánh tên sản phẩm. Ở dạng đơn giản nhất, truy vấn trông giống như sau:

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;

Bạn có thể phải thử tham gia vào thương hiệu và mô hình, tức là on t1.brand = p.brand and t1.model = p.model hoặc một số tiêu chí khác nếu tên không phải là duy nhất.

giá trang web sẽ không có giá trị nếu họ không bán sản phẩm.

Để nhanh chóng điền sản phẩm, bạn có thể chạy điều này:

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, việc sử dụng UNION (chứ không phải UNION ALL ) làm cho đầu ra của liên hợp chỉ tạo ra các hàng duy nhất




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để thực hiện một truy vấn đã kết hợp trong giao diện bảng ZF?

  2. Sự cố khi chèn chuỗi utf-8 vào cơ sở dữ liệu và sau đó xuất ra trang web

  3. Tại sao MySQL COUNT không có tên bảng lại cho 1

  4. Cập nhật MySQL nếu giá trị lớn hơn giá trị hiện tại đó

  5. Mysql Từ vấn đề enum đến tinyint