in

Quelle est la différence entre UNION et JOIN en SQL ? | Par Mike Huls | Mai, 2023


WHAT IS THE DIFFERENCE BETWEEN UNION AND JOIN IN SQL?

Si vous êtes un développeur SQL, vous êtes probablement familier avec les opérateurs JOIN, UNION, INTERSECT et EXCEPT. Bien que ces opérateurs soient tous utilisés pour combiner des données de différentes tables, il est important de comprendre leurs différences et comment les utiliser correctement.

Dans certains systèmes de bases de données comme SQL Server, PostgreSQL et SQLite, nous utilisons l’opérateur EXCEPT. Dans d’autres systèmes de bases de données (comme MySQL et Oracle), cet opérateur porte un nom différent : MINUS. Les deux opérateurs fonctionnent de la même manière.

TL;DR : EXCEPT == MINUS

Dans cet article, nous utiliserons des exemples SQL Server avec EXCEPT. Si vous utilisez une autre base de données, il suffit de remplacer EXCEPT par MINUS.

UNION : COMBINER LES RÉSULTATS DE PLUSIEURS REQUÊTES

L’opérateur UNION prend les résultats de deux requêtes et les fusionne en un seul ensemble de résultats. Par exemple, supposons que vous ayez une table de produits et une table de commandes, et que vous souhaitiez trouver toutes les commandes passées pour les produits dont le prix est inférieur à 100 cents :

“`sql
SELECT product_id FROM products WHERE price < 100 UNION SELECT product_id FROM orders ``` Ce code renvoie les identifiants de produits pour tous les produits qui coûtent moins de 100 cents, ainsi que les identifiants de produits pour tous les produits dans toutes les commandes. Il existe également une variante UNION ALL de l'opérateur UNION, qui ne supprime pas les doublons entre les deux ensembles de résultats. JOIN : COMBINER LES COLONNES DE DEUX OU PLUS TABLES DE DONNÉES L'opérateur JOIN combine les colonnes de deux tables de données à l'aide d'une colonne liée entre elles. Il existe plusieurs types de jointures, notamment INNER JOIN, LEFT JOIN et RIGHT JOIN. ```sql SELECT orders.order_id, products.product_name FROM orders INNER JOIN products ON orders.product_id = products.product_id ``` Ce code renvoie les identifiants de commande et les noms de produits pour toutes les commandes passées, en combinant les informations de la table des commandes et de la table des produits à l'aide de l'identifiant de produit. INTERSECT : TROUVER LES ENSEMBLES COMMUNS L'opérateur INTERSECT trouve les ensembles communs entre deux requêtes. Par exemple, si vous souhaitez trouver tous les produits vendus aux États-Unis qui ont également été retournés : ```sql SELECT product_id FROM sales WHERE country = 'USA' INTERSECT SELECT product_id FROM returns ``` Ce code renvoie les identifiants de produits pour tous les produits vendus aux États-Unis qui ont également été retournés. EXCEPT : TROUVER LES ÉLÉMENTS QUI N'APPARTIENNENT PAS À UN ENSEMBLE L'opérateur EXCEPT trouve les éléments d'une table qui ne sont pas présents dans un autre ensemble d'enregistrements. Par exemple, si vous souhaitez trouver tous les pays dont la population est inférieure à 1 million mais qui ne contiennent pas la lettre 'c' dans leur nom : ```sql SELECT name FROM countries WHERE population < 1000000 EXCEPT SELECT name FROM countries WHERE NAME LIKE '%c%' ``` Ce code renvoie les noms de tous les petits pays qui ne contiennent pas la lettre 'c' dans leur nom. CONCLUSION En résumé, UNION combine les résultats de deux requêtes, JOIN combine les colonnes de deux tables de données, INTERSECT trouve les ensembles communs, et EXCEPT trouve les éléments d'une table qui ne sont pas présents dans un autre ensemble d'enregistrements. Il est important de connaître les différences entre ces opérateurs et de les utiliser correctement dans vos requêtes SQL. SOURCES: - Article original : https://medium.com/better-programming/what-is-the-difference-between-union-and-join-in-sql-55d80e163eb8 - Image de l'article : https://miro.medium.com/max/700/1*tWXO-xNcDiYLN0vyKiOo_A.png

What do you think?

Written by Pierre T.

Leave a Reply

Your email address will not be published. Required fields are marked *

Défi de croissance gamifié de Twitter de 30 jours – Tweet Streak 30

À l’intérieur du plan annulé d’Amazon pour faire de Halo un succès de conditionnement physique