Mysql 其中,distinct ID有两个值

Mysql 其中,distinct ID有两个值,mysql,Mysql,我为这个奇怪的标题道歉,我真的想不出一个方法来描述这个。我只是有一个完全的精神障碍。表布局基本上如下所示: 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 我基本上希望选择所有在该表

我为这个奇怪的标题道歉,我真的想不出一个方法来描述这个。我只是有一个完全的精神障碍。表布局基本上如下所示:

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
我基本上希望选择所有在该表中包含CompanyA和CompanyB记录的客户ID


我该怎么做呢?

就在我发布这篇文章的时候,我发现了这一点。我整天都在写复杂的查询,但我就是搞不懂。这实际上只是一个OR查询。

我在发布这篇文章时就发现了这一点。我整天都在写复杂的查询,但我就是搞不懂。它实际上只是一个OR查询。

要返回所有同时包含CompanyA和CompanyB的company\u ID,您应该能够使用带有HAVING子句的GROUP BY来获得结果:

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

如果您只想返回任何带有CompanyA或CompanyB的company_ID,则可以使用IN:

若要返回同时包含CompanyA和CompanyB的所有company_ID,您应该能够使用带有HAVING子句的GROUP BY来获得结果:

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

如果您只想返回任何带有CompanyA或CompanyB的company_ID,则可以使用IN:


从选项卡名中选择*,其中company=CompanyA和company=CompanyB@dhpratik公司不能同时有两个值从选项卡名称中选择customer_id,其中公司位于“CompanyA”和“CompanyB”中;从选项卡1中选择*作为t1,从选项卡1中选择*作为t2,其中t1.company=company和t2.company=company Y。这应该可以从选项卡名称中选择*作为t1,从选项卡1中选择*作为t2,其中t1.company=company和t2.company=company=CompanyB@dhpratik公司不能同时有两个值从选项卡名称中选择customer_id,其中公司位于“CompanyA”和“CompanyB”中;从tab1中选择*作为t1,tab1作为t2,其中t1.company=CompanyA和t2.company=CompanyB这应该行得通,那么你没有很好地回答这个问题@蓝脚怪的答案和我想你的意思一样…请把答案放在这里,这样我们也可以知道,并在发生意外时使用future@BenM是的,我只能怪SQL的漫长而艰难的一天:好吧,那么你没有很好地回答这个问题@蓝脚怪的答案和我想你的意思一样…请把答案放在这里,这样我们也可以知道,并在发生意外时使用future@BenM我做到了,我只能怪SQL辛苦了一天:我认为第一个查询是不正确的。如果CompanyA为客户id出现两次,则此查询将返回it@Augusto不,不会,这就是为什么它使用DISTINCT。如果我没有在HAVING子句中包含DISTINCT,那么你是对的-请看演示-我是盲人。我的道歉:。@Augusto不用担心!:我认为第一个问题是不正确的。如果CompanyA为客户id出现两次,则此查询将返回it@Augusto不,不会,这就是为什么它使用DISTINCT。如果我没有在HAVING子句中包含DISTINCT,那么你是对的-请看演示-我是盲人。我的道歉:。@Augusto不用担心!: