2011-07-25 114 views
0

我正在開發一個價格比較程序。我有三個網站。在我的數據庫中,我有三個網上商店的表格。每個表格都有一個價格和一個product_id列。我想列出所有的product_id-s並查看每個網店的價格。產品ID是唯一的,但在所有表中都不相同,因爲並非所有網店都有相同的產品。我正在使用mysql,但我對數據庫很陌生。我應該嘗試什麼查詢?用於價格比較的Mysql查詢

+0

是沒有其他任何東西所有表格中的表格相同(用於比較)? – rabudde

回答

2

我建議你有一個「主」產品表,列出所有產品,不管它們是在上銷售的所有網站,還是隻有一個。然後加入到每個網站定價表。嘗試匹配產品名稱。在最簡單的形式,查詢沃爾德的樣子:

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; 

僅供參考,使用UNION(而不是UNION ALL),使工會的輸出端產生唯一行

+0

非常感謝你,這是非常有幫助的,正是我所需要的。 – czadam