2016-10-10 280 views
0

我有一个下表,我需要找到公司的最大消费者。 我有一个用户表和一个公司表。用户可以使用不同公司的许多产品,公司可以有许多用户作为其消费者。 user_id是从用户表的company_id本表中使用外键从公司表使用foreign_key获取具有相同列值的行

consumers_company

假设我们有以下数据: -

user_id | company_id 
--------------------- 
    6  | 1  
    6  | 2  
    7  | 5  
    8  | 8  
    8  | 1 
    8  | 8   

现在我们可以看到公司1拥有最大用户数。我正在使用此查询来查找那些拥有超过1个用户的公司。

SELECT * 
FROM consumers_company 
WHERE company_id IN (
SELECT company_id 
FROM consumers_company 
GROUP BY company_id 
HAVING COUNT(company_id) > 1) 

我的输出: -

user_id | company_id 
-------------------- 
6  | 1 
8  | 8   
8  | 1   
8  | 8     

所需的输出: -

user_id | company_id 
-------------------- 
6  | 1 
8  | 1   

我在MySQL.Please初学者帮助我。

+0

你在逻辑上如何得到你所需的输出? – Drew

+0

您没有主键。这可能会有问题。 – Strawberry

回答

0
select * from consumers_company where company_id in 
(select company_id from consumers_company group by company_id 
order by count(distinct user_id) desc limit 1) 

首先找出哪些必须在consumers_company最独特的USER_ID关系table.And的给出了它的所有消费者的公司。

+0

我已经发现,但现在有问题进一步发现有最大消费者的公司。 – user4946127

+0

只需使用子查询,它是具有最大消费者数量的公司ID – amow