假设您有一个包含两个字段的简单表:account和item: 一个帐户可以有多个项目。例如:
Account Item
11 Apples
11 Pears
11 Crackers
12 Apples
12 Bannanas
12 Cookies
13 Pears
13 Carrots
13 Apples
如何编写查询以便我可以选择具有一些指定项目集的所有帐户。例如,我将如何编写查询,以便选择分配了苹果和梨的字段的帐户(在示例帐户11和13中)。
感谢您的帮助。
埃利奥特
答案 0 :(得分:12)
您可以构建一个查询,该查询只会在集合中留下苹果和梨,然后按帐户分组并计算不同的项目。如果它与预期的计数匹配(在这种情况下为2),则该帐户具有完整集。
select account
from tbl
where item in ('apples','pears')
group by account
having count(distinct item) = 2
答案 1 :(得分:0)
SELECT DISTINCT account From Table WHERE item in ('Apples','Pears')
答案 2 :(得分:0)
您可以使用自联接一次访问同一个表的两行中的信息:
SELECT ai0.Account
FROM accountitems AS ai0
JOIN accountitems AS ai1 ON ai0.Account=ai1.Account
WHERE ai0.Item='Apples'
AND ai1.Item='Pears'
答案 3 :(得分:0)
你可以使用这样的查询。
SELECT Distinct Account From MyTable WHERE Item = 'Apple' or Item = 'Pears';
此查询将返回所有帐户的列表,其中包含项目为apple或pears。 Distinct确保每个帐户只显示一次。