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.