说我正在建立一个比较购物网站。这意味着我有多个供应商销售相同的商品。假设一个基本的数据库结构如下:
==================================
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 :(得分: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