首先是一个数据库示例:
id, product_id, cat, name, value
--------------------------------
1,1,Algemeen,Processor,2 Ghz
2,1,Algemeen,Geheugen,4 GB
3,2,Algemeen,Processor,3 Ghz
4,2,Algemeen,Geheugen,4 GB
5,3,Beeldscherm,Inch,22"
6,3,Beeldscherm,Kleur,Zwart
7,3,Algemeen,Geheugen,3 GB
8,3,Algemeen,Processor,3 Ghz
我想通过一个查询来选择以下 id:1,2,3,4,7,8
因为这些产品的猫 = algemeen 和名称 = 处理器。 ID 5,6 仅在产品 3 中出现。
因此,必须选择所有产品 (product_id) 都存在的条目(目录和名称)。
数据库包含 80.000 个条目,其中包含许多不同的猫、名称和值。
这是可能的一个查询还是需要一些 php?我该怎么做呢?
我为糟糕的英语道歉。
最佳答案
我想您的意思是,显示所有 product_id 中存在 (cat, name) 组合的所有记录,对吧?
select t.id, t.product_id, t.cat, t.name, t.value
from (
select cat, name
from tbl
group by cat, name
having count(product_id) = count(distinct product_id)
) p
join tbl t on t.cat = p.cat and t.name = p.name
关于php - 选择值存在的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5040158/