Join : Comparaison entre FULL et CROSS JOIN
Découvrez les différences clés entre FULL et CROSS JOIN, deux types de jointures utilisés pour combiner des lignes provenant de plusieurs tables.
Objectifs
- Compréhension de la syntaxe FULL et CROSS JOIN
- Connaître les cas d’utilisation de chaque jointure
Exemple
```sql SELECT * FROM table1 FULL JOIN table2 ON table1.id = table2.id; SELECT * FROM table1 CROSS JOIN table2;```
Exercice
Écrivez une requête SQL pour effectuer un FULL JOIN entre deux tables (table_produits et table_ventes) en utilisant la clé primaire des produits comme clé commune.
Solution (cliquer pour afficher)
Afficher la solution
```sql SELECT * FROM table_produits full join table_ventes ON table_produits.id = table_ventes.id_produit;```
Pour aller plus loin
- L’utilisation de FULL JOIN permet d’obtenir toutes les lignes des tables jointes même si aucune correspondance n’est trouvée pour certaines clés.
- Le CROSS JOIN (ou produit cartésien) combine toutes les lignes des deux tables données, résultant souvent en un grand nombre de lignes non souhaitées. Il est donc utilisé avec précaution et uniquement dans certaines situations spécifiques.
- La syntaxe de FULL JOIN varie légèrement selon les bases de données : Oracle utilise `FULL OUTER JOIN`, MySQL utilisera `LEFT JOIN` ou `RIGHT JOIN` suivi du mot-clé `NULL`
