Problem:
Sie möchten nicht doppelte Datensätze in SQL anzeigen.
Beispiel:
Unsere Datenbank hat eine Tabelle namens City
mit Daten in den Spalten id
, name
und country
.
id | Name | Land |
---|---|---|
1 | Madrid | Spanien |
2 | Barcelona | Spanien |
3 | Warschau | Polen |
4 | Krakau | Polen |
Holen wir uns die Namen der Länder ohne Duplikate.
Lösung:
Wir verwenden das Schlüsselwort DISTINCT
. Hier ist die Abfrage:
SELECT DISTINCT country FROM City;
Hier ist das Ergebnis der Abfrage:
Land |
---|
Spanien |
Polen |
Diskussion:
Wenn die Abfrage nur eindeutige Zeilen zurückgeben soll, verwenden Sie das Schlüsselwort DISTINCT
nach SELECT
. DISTINCT
kann verwendet werden, um eindeutige Zeilen aus einer oder mehreren Spalten abzurufen. Sie müssen die Spalten nach DISTINCT
auflisten Schlüsselwort.
Wie funktioniert es unter der Haube? Wenn die Abfrage ausgeführt wird, wird zuerst der gesamte Datensatz ausgewählt, dann DISTINCT
entfernt die Zeilen, die aufgrund der ausgewählten Spalten dupliziert werden.
In unserem Beispiel kommen sowohl Spanien als auch Polen zweimal in der Tabelle vor. Allerdings nach Anwendung des Schlüsselworts DISTINCT
, jeder von ihnen wird nur einmal zurückgegeben.