Heim > Datenbank > MySQL-Tutorial > Wie wähle ich Benutzer-IDs mit bestimmten Rollen (1, 2 und 3) aus einer Tabelle aus?

Wie wähle ich Benutzer-IDs mit bestimmten Rollen (1, 2 und 3) aus einer Tabelle aus?

Patricia Arquette
Freigeben: 2025-01-19 17:06:09
Original
743 Leute haben es durchsucht

How to Select User IDs with Specific Roles (1, 2, and 3) from a Table?

Benutzer-IDs mit mehreren Rollen (1, 2 und 3) abrufen

Diese Anleitung zeigt, wie Sie eindeutige Benutzer-IDs mit den Rollen 1, 2 und 3 effizient aus einer Tabelle mit den Spalten userid und roleid auswählen. Wir werden zwei effektive SQL-Abfragemethoden untersuchen.

Methode 1: Aggregierte Abfrage mit HAVING-Klausel

Dieser Ansatz verwendet Aggregation und Filterung:

<code class="language-sql">SELECT userid
FROM userrole
WHERE roleid IN (1, 2, 3)
GROUP BY userid
HAVING COUNT(*) = 3;</code>
Nach dem Login kopieren

Die Abfrage filtert nach Zeilen, in denen roleid 1, 2 oder 3 ist. Anschließend gruppiert sie die Ergebnisse nach userid und verwendet HAVING COUNT(*) = 3, um sicherzustellen, dass nur Benutzer mit allen drei Rollen enthalten sind.

Methode 2: Self-JOIN-Abfrage

Alternativ kann ein Self-JOIN das gleiche Ergebnis erzielen:

<code class="language-sql">SELECT t1.userid
FROM userrole t1
INNER JOIN userrole t2 ON t1.userid = t2.userid AND t2.roleid = 2
INNER JOIN userrole t3 ON t1.userid = t3.userid AND t3.roleid = 3
WHERE t1.roleid = 1;</code>
Nach dem Login kopieren

Diese Abfrage verknüpft die Tabelle userrole dreimal mit sich selbst. Es stellt sicher, dass ein userid roleid 1 hat, und verbindet sich dann, um dasselbe userid mit roleid 2 und schließlich roleid 3 zu finden. Das INNER JOIN stellt sicher, dass nur Benutzer mit allen drei Rollen zurückgegeben werden. Diese Methode ist möglicherweise weniger effizient als der Aggregatansatz für sehr große Tabellen.

Das obige ist der detaillierte Inhalt vonWie wähle ich Benutzer-IDs mit bestimmten Rollen (1, 2 und 3) aus einer Tabelle aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage