查询以选择具有一对多关联的项目

时间:2012-03-06 11:15:50

标签: sql ms-access-2007 inner-join

我有一张包含以下数据的表格。

Name   Product
Ram    Acer
Indu   Sony
Indu   Acer
Rahul  Sony
Divya  Acer
Divya  Dell

现在我想查询选择同时包含Acer和Sony产品的名称。

结果应该是Indu

2 个答案:

答案 0 :(得分:2)

select Name 
from your_table 
where Product in ('Acer', 'Sony')
group by Name
having count(Product) > 1

如果您要同时寻找更多产品,那么您必须增加计数中的数量:

where Product in ('Acer', 'Sony', 'Dell')
...
having count(Product) > 2

答案 1 :(得分:0)

这将选择ACERSONY

中包含产品 BOTH 的所有名称
SELECT DISTINCT Name
FROM tableName
WHERE Product = 'Acer' AND
      Name IN (SELECT Name 
                 FROM tableName 
                 WHERE Product = 'Sony')