我有两个表:产品ID表:
表p\U测试:
id:
1
2
3
4
以及一个表,其中列出了一个产品的所有可能组合,并与其他所有产品进行了相等性测试(假设我测试了它们的图片,如果图片相等-我假设它们是同一个产品):表p\u match\u test:
p_id_1, p_id_2, is_same
1 2 0
1 3 0
1 4 1
2 3 1
2 4 0
3 4 0
如您在本例中所见,共有4种产品。对产品1和产品4进行了相等性测试,结果发现它们“相同”,产品2和产品3的情况相同。这意味着只有两种“独特的”产品(4种产品有2张独特的图片)。
我想要实现的是在任何一组产品中都有一些独特的图片,因此结果将是:
products_count unique_products_count
4 2
我尝试了以下查询:
select count(p.id) as products_count,
sum(if(not exists(select * from p_match_test t where (p.id = t.p_id_1 or p.id = t.p_id_2) and t.is_same = 1), 1, 0)) as unique_products_count
from p_test p
但它只计算没有重复的产品,而不计算“独特”的图像。我如何实现我的目标?
暂无答案!
目前还没有任何答案,快来回答吧!