0

我为这个奇怪的标题道歉,我真的想不出一种方式来描述这个。我只是有一个完整的心理障碍。基本上,表格布局如下所示:

id, customer_id, company, date, (... other irrelevant fields)
1   1            CompanyA    02/08/1111
2   1            CompanyB    02/08/1111
3   1            CompanyC    02/08/1111

我基本上想选择在该表中有记录的所有客户 IDCompanyACompanyB

我该怎么办?

4

2 回答 2

5

要返回所有company_ids同时拥有的CompanyACompanyB然后您应该能够使用带有 HAVING 子句的 GROUP BY 来获得结果:

select customer_id
from yourtable
where company in ('CompanyA', 'CompanyB')
group by customer_id
having count(distinct company) >= 2;

请参阅SQL Fiddle with Demo

如果您只想返回 anycompany_ids或者然后您CompanyA可以CompanyB使用IN

select customer_id
from yourtable
where company in ('CompanyA', 'CompanyB')
于 2013-08-20T13:53:37.800 回答
0

我在发这个的时候就想通了。我整天都在写复杂的查询,但我就是搞不懂。它实际上只是一个OR查询。

于 2013-08-20T13:53:34.737 回答