数据库建模:查询比较购物网站

时间:2010-12-10 00:28:48

标签: mysql

说我正在建立一个比较购物网站。这意味着我有多个供应商销售相同的商品。假设一个基本的数据库结构如下:

==================================
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。有什么建议吗?

1 个答案:

答案 0 :(得分: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