Junior
Quelle est la différence entre INNER JOIN et OUTER JOIN?
sobes.tech IA
Réponse de l'IA
INNER JOIN ne renvoie que les lignes qui ont des correspondances dans les deux tables selon la condition de jointure. Si dans l'une des tables il n'y a pas d'enregistrement correspondant, cette ligne ne sera pas incluse dans le résultat.
OUTER JOIN renvoie toutes les lignes d'une table et celles correspondantes de l'autre, et si aucune correspondance n'est trouvée, les données manquantes seront NULL. Il existe trois types d'OUTER JOIN :
- LEFT OUTER JOIN — toutes les lignes de la table de gauche + celles correspondantes de la droite;
- RIGHT OUTER JOIN — toutes les lignes de la table de droite + celles correspondantes de la gauche;
- FULL OUTER JOIN — toutes les lignes des deux tables, où il n'y a pas de correspondance, NULL.
Exemple :
SELECT * FROM employees INNER JOIN departments ON employees.dept_id = departments.id;
-- ne renverra que les employés qui ont un département
SELECT * FROM employees LEFT OUTER JOIN departments ON employees.dept_id = departments.id;
-- renverra tous les employés, même s'ils n'ont pas de département (dans les colonnes departments, ce sera NULL)