Problème :
Vous souhaitez afficher les enregistrements non dupliqués en SQL.
Exemple :
Notre base de données a une table nommée City avec des données dans les colonnes id , name , et country .
| identifiant | nom | pays |
|---|---|---|
| 1 | Madrid | Espagne |
| 2 | Barcelone | Espagne |
| 3 | Varsovie | Pologne |
| 4 | Cracovie | Pologne |
Obtenons les noms des pays sans doublons.
Solution :
Nous utiliserons le mot-clé DISTINCT . Voici la requête :
SELECT DISTINCT country FROM City;
Voici le résultat de la requête :
| pays |
|---|
| Espagne |
| Pologne |
Discussion :
Si vous souhaitez que la requête renvoie uniquement des lignes uniques, utilisez le mot-clé DISTINCT après SELECT . DISTINCT peut être utilisé pour récupérer des lignes uniques à partir d'une ou plusieurs colonnes. Vous devez lister les colonnes après le DISTINCT mot-clé.
Comment ça marche sous le capot ? Lorsque la requête est exécutée, l'ensemble des données est sélectionné en premier, puis DISTINCT supprime les lignes qui sont dupliquées compte tenu des colonnes sélectionnées.
Dans notre exemple, l'Espagne et la Pologne apparaissent deux fois dans le tableau. Cependant, après avoir appliqué le mot-clé DISTINCT , chacun d'eux n'est renvoyé qu'une seule fois.