2016-10-10 5 views
0

Ich habe eine folgende Tabelle, wo ich die maximalen Verbraucher eines Unternehmens finden muss. Ich habe eine Benutzer Tabelle und eine Firma Tabelle.Ein Benutzer kann viele Produkte von einem anderen Unternehmen verwenden und ein Unternehmen kann viele Benutzer als seine Verbraucher haben. user_id ist ein Fremdschlüssel in dieser Tabelle von Benutzer-Tabelle verwendet, und company_id ein foreign_key von Unternehmen TabelleGet Zeilen mit der gleichen Spalte Wert

TABLE consumers_company

Angenommen, wir haben die folgenden Daten verwendet: -

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

Jetzt, wie wir sehen können, hat Firma 1 maximale Benutzer. Ich benutze diese Abfrage, um jene Firmen zu finden, die Benutzer mehr als 1 haben.

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

Meine Leistung: -

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

Erforderliche Leistung: -

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

Ich bin ein Anfänger in MySQL.Please mir helfen.

+0

Wie gelangen Sie logischerweise zu Ihrer gewünschten Ausgabe? – Drew

+0

Sie haben keinen Primärschlüssel. Dies kann sich als problematisch erweisen. – Strawberry

Antwort

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) 

zuerst die Firma, die die einzigartige User_id Beziehung in der consumers_company haben herauszufinden table.And die alle ihre Verbraucher geben.

+0

Ich habe das bereits gefunden, aber ich habe jetzt das Problem, das Unternehmen, das maximale Verbraucher hat, weiter zu finden. – user4946127

+0

Verwenden Sie einfach die Unterabfrage, es ist die Firmen-ID, die maximale Verbraucher zählen – amow

Verwandte Themen