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.1SELECT 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
MySQL 8.1SELECT [DISTINCT] tabellen_felder FROM tabellen_name;
Eckige Klammern in der Syntaxbeschreibung markieren einen optionalen Teil der Query. In der SQL-Query selbst werden sie nicht geschrieben.
In unserem Fall sieht die Query für alle einzigartigen Klassen, in denen mindestens ein Schüler ist, also so aus:
MySQL 8.1SELECT 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.1SELECT DISTINCT first_name, last_name FROM User;