MySQL选择产品相似产品
问题描述:
我有两个表产品和类似的产品。产品表包含与可用产品相关的数据,但是这些表具有相同但具有不同产品ID的产品负载。这就是为什么我有另一张表来存放所有类似产品的数据。我需要运行一个查询来从产品表中选择产品,但同时也会检查similar_products表以不选择任何重复的产品。MySQL选择产品相似产品
因此,例如:
产品表:
ProductID | Manufacturer | Part No | Name
-----------------------------------------------------------------
8202 | Hp | 402146-B21 | HP Auto Synch Cable
8210 | Hp | 113894-B21 | HP Stylus 3 Pack
8211 | Hp | 113894-B21 | HP Stylus 3 Pack
8212 | Hp | 113894-B21 | HP Stylus 3 Pack
Similar_products表
ProductID | Similar_ProductID
----------|-------------------
8210 | 8211
8210 | 8212
8211 | 8210
8211 | 8212
8212 | 8210
8212 | 8211
如何运行一个查询,将只选择产品ID 8202和8210,而不是选择重复产品。
答
如果你总是有关系X〜Y作为两条记录[X,Y]和[Y,X]在Similar_products你的问题是The Rows Holding the Group-wise Maximum of a Certain Column
SELECT
p.ProductID, p.Name
FROM
Products as p
WHERE
NOT EXISTS(
SELECT
1
FROM
Similar_products s
WHERE
p.ProductID=s.ProductID
AND p.ProductID>s.Similar_ProductID
)
变化。如果产品X相似产品y,是否遵循(看起来应该)产品y与产品x相似?换句话说,会不会有重复? – Strawberry
如果产品x与产品y相似,而产品y与产品z相似,是否意味着产品x也与产品z相似,通过传递性?另外,在你的例子中,当与8210不相似时,如何选择8202? –
@Strawberry不是所有的产品都会有重复,但有些产品是相似的,但有不同的产品,但是当为magento商店创建出口时,我无法导出重复的产品,这就是为什么我需要从给定产品的所有重复产品中只选择一种产品的原因。 – user4676307