2016-07-13 4 views
-1

Lasst uns sagen, dass ich in der folgenden Tabelle haben:SQL Query Person, die in der gleichen Zeit zu viele Abteilungen gehört

 id | person_id | department_id 
    ------------------------------ 
     1 | 1   | 2 
     2 | 1   | 3 
     3 | 1   | 4 
     4 | 3   | 2 
     5 | 3   | 5 
     6 | 5   | 4 
     7 | 6   | 4 
     8 | 9   | 4 

Ich möchte die Person abzufragen, die in der gleichen Zeit von Abteilungen Array gehören. zum Beispiel: die Person, die zu (2,5) Abteilungen gehört, ist Person 3 und er ist die einzige Person.

Ich suchte viel und versuchte es selbst, aber ich konnte keinen Weg finden.

p.s. Ich habe es bereits mit 'for' loop gemacht, aber ich suche nach einer schnellen und nativen SQL-Lösung.

+0

Frage wenig unklar ist, fügen Sie es mit Beispiel Eingangs- und Ausgangs erarbeiten. –

+0

Ich werde das Array von Abteilungs-ID zur SQL-Abfrage bereitstellen und ich sollte person_id erhalten, die zu allen Abteilungen gehört – Waelsy123

Antwort

3

Sie können dies tun, mit group by und having:

select t.person_id 
from followingtable t 
where t.department_id in (2, 5) 
group by t.person_id 
having count(*) = 2; 
Verwandte Themen