2010-12-10 29 views
0

說我正在建設一個比較購物網站。這意味着我有多個供應商銷售相同的物品。假設一個基本的數據庫結構如下所示:數據庫建模:查詢比較購物網站

================================== 
vendor_product 
================================== 
vendor_product_id (PK) 
condition ('new', 'used', 'collectible') 
unit_price 


================================== 
product_mapping 
================================== 
vendor_product_id 
product_id 


================================== 
product 
================================== 
product_id (PK) 
product_code 
name 

給定一個PRODUCT_CODE(或PRODUCT_CODE列表),返回映射到適當的產品的所有供應商的產品,由映射產物分組供應商的產品,顯示價格範圍(從最低到最高,無論條件如何)以及銷售該產品的供應商數量。輸出會是這樣的:

====================================================================== 
product_code | name | vendor_count | lowest_price | highest price | 
====================================================================== 
abc123  | Sony TV | 5   | 200   | 350   | 
---------------------------------------------------------------------- 
xyz987  | Barbie | 11   | 15   | 22   | 
---------------------------------------------------------------------- 

我不知道該怎麼辦了SQL這一點。有什麼建議麼?

+0

做你嘗試任何事情了嗎? – Randy 2010-12-10 01:05:24

回答

1

事情大致是這樣的...不是在所有測試。

SELECT p.product_code product_code 
    , p.name name 
    , COUNT(vp.vendor_product_id) vendor_count 
    , MIN(vp.unit_price) lowest_price 
    , MAX(vp.unit_price) highest_price 
FROM product p 
JOIN product_mapping pm ON p.product_id = pm.product_id 
JOIN vendor_product vp ON pm.vendor_product_id = vp.vendor_product_id 
GROUP BY p.product_code, p.product_name 
+0

作品。不過,不需要按product_name進行分組。謝謝! – StackOverflowNewbie 2010-12-10 04:08:25