6.4 — Attention aux doublons lors des jointures
Ce que vous apprendrez
- Pourquoi la jointure de tables peut créer des lignes en double
- Comment diagnostiquer et prévenir les doublons indésirables
- Bonnes pratiques pour des jointures sûres
Tables d'exemple
Table sales:
SaleID | ProductID | Amount |
---|---|---|
1 | 101 | 120 |
2 | 102 | 80 |
3 | 101 | 50 |
4 | 103 | 90 |
Table products:
ProductID | ProductName |
---|---|
101 | Apples |
101 | Apples |
102 | Oranges |
103 | Bananas |
Pourquoi les doublons se produisent-ils ?
Lorsque vous joignez des tables en SQL, chaque ligne de la première table est associée à chaque ligne de la seconde table qui répond à la condition de jointure.
Si l'une des tables a des valeurs en double dans la colonne de jointure, vous pouvez obtenir plus de lignes que prévu.
Exemple :
Supposons que votre table sales
ait plusieurs ventes pour le même ProductID
, et que votre table products
ait également des valeurs ProductID
en double (peut-être en raison d'erreurs de saisie de données) :
sql
SELECT s.SaleID, p.ProductID, p.ProductName, s.Amount
FROM sales s
INNER JOIN products p
ON s.ProductID = p.ProductID;
- Si
products
a deux lignes pour le mêmeProductID
, chaque vente pour ce produit apparaîtra deux fois dans le résultat.
Comment diagnostiquer les doublons
- Vérifiez les doublons dans vos colonnes de jointure avant de joindre :
sql
SELECT ProductID, COUNT(*)
FROM products
GROUP BY ProductID
HAVING COUNT(*) > 1;
- Si cela renvoie des lignes, vous avez des clés en double dans
products
.
Comment prévenir ou gérer les doublons
- Demander à corriger le problème de qualité de données en supprimant les doublons dans la table sources.
- Assurez-vous que vos colonnes de jointure sont des identifiants uniques (clés primaires) dans au moins une table.
- En option: Utilisez
SELECT DISTINCT
après votre jointure pour supprimer les résultats en double (mais cela a seulement masqué des problèmes de qualité de données sous-jacents).
Points clés
- Les doublons dans les colonnes de jointure peuvent multiplier vos lignes de résultats de manière inattendue.
- Vérifiez toujours vos données pour les doublons avant de joindre.
- Utilisez des clés uniques pour des jointures fiables.
Prochaines étapes
Maintenant que vous comprenez les risques des doublons, vous êtes prêt à joindre des tables en toute confiance et à construire des analyses SQL robustes.