Duplikate entfernen, DISTINCT
In manchen Situationen liefert eine SQL-Query Zeilen, die sich wiederholen.
Geben wir zum Beispiel das Feld class aus der Tabelle Student_in_class einer Datenbank aus, in der der Schulstundenplan organisiert ist.
MySQL 8.4SELECT class FROM Student_in_class;
Da in einer Klasse mehrere Schüler sein können, ist es nicht überraschend, dass im Ergebnis identische Werte auftauchen. Um solche Duplikate beim Abfragen zu vermeiden, gibt es den DISTINCT-Operator.
Syntax des Operators
SELECT [DISTINCT] tabellen_felder FROM tabellen_name;- [ ]optionaler Teil
- DISTINCT
Behält im Ergebnis nur eindeutige Zeilen: Von mehreren gleichen Zeilen wird eine ausgegeben.
SchlüsselwortOptional- tabellen_felder
Die Spalten, die im Ergebnis landen. Die Eindeutigkeit wird über alle angegebenen Spalten zusammen geprüft.
- tabellen_name
- Die Tabelle, aus der die Daten ausgewählt werden.
In unserem Fall sieht die Query für alle einzigartigen Klassen, in denen mindestens ein Schüler ist, also so aus:
MySQL 8.4SELECT DISTINCT class FROM Student_in_class;
DISTINCT für mehrere Spalten
Verwendest du DISTINCT für zwei oder mehr Spalten, werden Datensätze entfernt, die in allen angegebenen Feldern identisch sind.
Für so eine Tabelle
würde die Query mit DISTINCT alle Kombinationen aus Vor- und Nachnamen zurückgeben – außer dem doppelten „John Scott".
MySQL 8.4SELECT DISTINCT first_name, last_name FROM User;