Mysql查询价格比较

时间:2011-07-25 18:26:54

标签: mysql comparison

我正在制定价格比较计划。我有三个网站。在我的数据库中,我有三个网上商店表。每个表都有一个价格和一个product_id列。我想列出所有product_id-s并查看每个网店的价格。产品ID是唯一的,但在所有表中都不相同,因为并非所有的网店都有相同的产品。我正在使用mysql,但我对数据库很新。我应该尝试什么查询?

1 个答案:

答案 0 :(得分: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)会使联合的输出只产生唯一的行