[英]Mysql query for price comparison
我正在进行价格比较计划。 我有三个网站。 在我的数据库中,我有三个网上商店表。 每个表都有一个价格和一个product_id列。 我想列出所有product_id-s并查看每个网店的价格。 产品ID是唯一的,但在所有表中都不相同,因为并非所有的网店都有相同的产品。 我正在使用mysql,但我对数据库很新。 我应该尝试什么查询?
我建议您有一个“主”产品表,列出所有产品,无论它们是在所有网站上销售,还是只销售一个。 然后从那里加入到每个网站定价表。 尝试匹配产品名称。 在最简单的形式中,查询看起来像:
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
)会使UNION ALL
的输出仅产生唯一的行
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.