Probleem:
U wilt niet-dubbele records in SQL weergeven.
Voorbeeld:
Onze database heeft een tabel met de naam City
met gegevens in de kolommen id
, name
, en country
.
id | naam | land |
---|---|---|
1 | Madrid | Spanje |
2 | Barcelona | Spanje |
3 | Warschau | Polen |
4 | Krakau | Polen |
Laten we de namen van de landen krijgen zonder duplicaten.
Oplossing:
We gebruiken het trefwoord DISTINCT
. Dit is de vraag:
SELECT DISTINCT country FROM City;
Dit is het resultaat van de zoekopdracht:
land |
---|
Spanje |
Polen |
Discussie:
Als u wilt dat de zoekopdracht alleen unieke rijen retourneert, gebruikt u het trefwoord DISTINCT
na SELECT
. DISTINCT
kan worden gebruikt om unieke rijen uit een of meer kolommen op te halen. U moet de kolommen vermelden na de DISTINCT
zoekwoord.
Hoe werkt het onder de motorkap? Wanneer de query wordt uitgevoerd, wordt eerst de hele set gegevens geselecteerd en vervolgens DISTINCT
verwijdert de rijen die gedupliceerd zijn gegeven de geselecteerde kolommen.
In ons voorbeeld komen zowel Spanje als Polen twee keer voor in de tabel. Echter, na toepassing van het trefwoord DISTINCT
, elk van hen wordt slechts één keer geretourneerd.