2016-10-10 10 views
0

私は会社の最大消費者を見つける必要がある次の表を持っています。 私はユーザーテーブルと会社テーブルを持っています。ユーザーは異なる会社の多くの製品を使用することができ、企業は消費者として多くのユーザーを持つことができます。 USER_IDは、ユーザーテーブルとのcompany_idからこの表で使用されている外部キーです会社テーブルから使用FOREIGN_KEY同じ列の値を持つ行を取得する

TABLEは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

関連する問題