les organisations génèrent et analysent des volumes de données inégalés à chaque minute qui passe. Dans cet article, nous allons démontrer comment nous pouvons utiliser SQL Inner Join pour interroger et accéder aux données de plusieurs tables qui stockent ces données en croissance constante dans les bases de données SQL.
SQL Joins
avant de commencer avec SQL Inner Join, je voudrais appeler SQL Join ici., Join est la clause largement utilisée dans le serveur SQL essentiellement pour combiner et récupérer des données à partir de deux tables ou plus. Dans une base de données relationnelle du monde réel, les données sont structurées dans un grand nombre de tables et c’est pourquoi, il est constamment nécessaire de joindre ces multiples tables en fonction de relations logiques entre elles. Il existe quatre types de jointures de base dans SQL Server: interne, externe (gauche, droite, complète), Self et Cross join. Pour obtenir un aperçu rapide de toutes ces jointures, je vous recommande de passer par ce lien, SQL join types overview et tutorial.,
Cet article cible tout sur la jointure interne dans SQL Server, alors allons-y.
définition de SQL Inner Join
la clause INNER Join dans SQL Server crée une nouvelle table (non physique) en combinant des lignes qui ont des valeurs correspondantes dans deux tables ou plus. Cette jointure est basée sur une relation logique (ou un champ commun) entre les tables et est utilisée pour récupérer les données qui apparaissent dans les deux tables.
supposons que nous ayons deux tables, La Table A et la Table B, que nous aimerions joindre en utilisant SQL Inner Join., Le résultat de cette jointure sera un nouveau jeu de résultats qui renvoie les lignes correspondantes dans ces deux tableaux. La partie intersection en noir ci-dessous montre les données récupérées à l’aide de la jointure interne dans SQL Server.
SQL Server Inner Join Syntaxe
ci-Dessous est la base de la syntaxe de Jointure Interne.
sélectionnez Column_list
de TABLE1
INNER JOIN TABLE2
sur Table1.ColName = Table2.ColName
la syntaxe de jointure interne compare essentiellement les lignes de Table1 avec Table2 pour vérifier si quelque chose correspond en fonction de la condition fournie dans la clause ON., Lorsque la condition de jointure est remplie, elle renvoie les lignes correspondantes dans les deux tables avec les colonnes sélectionnées dans la clause SELECT.
la clause SQL Inner Join est identique à la clause Join et fonctionne de la même manière si nous ne spécifions pas le type (INNER) lors de l’utilisation de la clause Join. En bref, Inner Join est le mot-clé par défaut pour Join et les deux peuvent être utilisés de manière interchangeable.
Remarque – Nous le mot-clé « Intérieure » Rejoindre dans cet article, par souci de clarté. Vous pouvez l’omettre lors de l’écriture de vos requêtes et peut utiliser seulement « Rejoindre » ainsi.,
SQL Inner Join in action
essayons de comprendre le concept de Inner Join à travers un échantillon de données intéressant qui traite d’une entreprise de Pizza et de sa distribution alimentaire. Je vais d’abord créer deux tables: la table « PizzaCompany » qui gère différentes succursales de points de vente de pizzas dans quelques villes et la table « Foods » qui stocke les détails de la distribution alimentaire dans ces entreprises. Vous pouvez exécuter le code ci-dessous pour créer et remplir des données dans ces deux tables. Toutes ces données sont hypothétiques et vous pouvez créer dans l’une de vos bases de données existantes.,
Voici à quoi ressemblent les données de la table PizzaCompany:
créons et remplissons maintenant la table Foods. CompanyID dans cette table est la clé étrangère qui fait référence à la clé primaire de la table PizzaCompany créée ci-dessus.
le tableau suivant présente les données du tableau aliments. Ce tableau stocke des informations telles que les unités vendues par aliment et également le point de vente de pizza (CompanyId) qui le livre.,
maintenant, si nous aimerions voir les articles et aussi les unités vendues par chaque entreprise de pizza, nous pouvons combiner ces deux tables à l’aide d’une clause de jointure interne utilisée sur le champ CompanyId (dans notre cas, cela partage une relation de clé étrangère).
1
2
3
4
|
SÉLECTIONNEZ pz.CompanyCity, pz.Nom de l’entreprise, pz.CompanyId comme PizzaCompanyId, F.,CompanyID comme FoodsCompanyId, F. ItemName, F. UnitsSold
de PizzaCompany pz
INNER JOIN Foods f
sur pz.CompanyId = F. CompanyId
|
Voici le jeu de résultats de la requête SQL INNER Join ci-dessus. Pour chaque ligne de la table PizzaCompany, Inner Join compare et trouve les lignes correspondantes dans les aliments du tableau et renvoie toutes les lignes correspondantes comme indiqué ci-dessous. Et si vous remarquez, CompanyId = 5 est exclu du résultat de la requête, car il ne fait pas de correspondance dans le tableau des aliments.,
avec l’aide de l’ensemble de résultats ci-dessus, nous pouvons distinguer les articles ainsi que le nombre d’articles livrés par les points de vente de pizza dans différentes villes. Par exemple, Dominos a fait une livraison de 7 gressins et 11 pizzas moyennes à Los Angeles.
SQL Inner Join sur trois tables
explorons plus dans cette jointure et supposons que trois parcs aquatiques (ressemble à l’été) soient ouverts dans l’état et que ces parcs aquatiques externalisent la nourriture des points de vente de pizza mentionnés dans la table PizzaCompany.,
je vais rapidement créer un parc aquatique de table et y charger des données arbitraires comme indiqué ci-dessous.
Et c’est en dessous de la sortie de ce tableau.
Comme le dit le dicton, l’image vaut mille mots. Voyons rapidement le diagramme de base de données de ces trois tables avec leurs relations pour mieux les comprendre.
maintenant, nous allons inclure cette troisième table dans la clause SQL Inner Join pour voir comment elle va affecter le jeu de résultats., Selon les données du tableau des parcs aquatiques, les trois parcs aquatiques ont externalisé la nourriture de toutes les pizzerias, à l’exception de Pizzeria (Id=6) et chuck E cheese (Id = 7). Exécutez le code ci-dessous pour voir toute la distribution de nourriture à travers les parcs aquatiques par les points de vente de Pizza.
1
2
3
4
5
6
|
SÉLECTIONNEZ pz.CompanyId, pz.CompanyCity, pz.Nom de l’entreprise, F. nom de L’article, F.,Les unités vendues,
W. WaterParkLocation
de PizzaCompany pz
INNER JOIN Foods F sur pz.CompanyId = F. CompanyId
INNER JOIN WaterPark w sur W. CompanyId = pz.CompanyId
commander par pz.CompanyId
|
basé sur CompanyId, SQL Inner Join correspond aux lignes dans les deux tables, PizzaCompany (Tableau 1) et Foods (Tableau 2) et recherche ensuite une correspondance dans le parc aquatique (Tableau 3) pour renvoyer les lignes., Comme indiqué ci-dessous, avec l’ajout de INNER join sur WaterPark, CompanyId (6,7 (en dehors de 5)) sont également exclus du jeu de résultats final en tant que condition W. CompanyId = pz.CompanyId n’est pas satisfait pour Ids (6,7). C’est ainsi que SQL INNER join permet de renvoyer des lignes spécifiques de données à partir de plusieurs tables.
creusons plus dans SQL Inner Join avec quelques clauses T-SQL supplémentaires.
en utilisant WHERE avec INNER Join
Nous pouvons filtrer les enregistrements en fonction d’une condition spécifiée lorsque SQL Inner Join est utilisé avec une clause WHERE., Supposons que nous aimerions obtenir les rangées où les unités vendues étaient supérieures à 6.
dans la requête suivante, la clause WHERE est ajoutée pour extraire les résultats avec une valeur supérieure à 6 pour les unités vendues.
1
2
3
4
5
|
SÉLECTIONNEZ pz.CompanyId, pz.CompanyCity, pz.Nom de la société,f.Nom de l’élément,. f.UnitsSold
DE PizzaCompany pz
INNER JOIN Aliments f SUR pz.,CompanyId = F. CompanyId
où F. UnitsSold> 6
ordre par pz.CompanyCity
|
Executer le code ci-dessus dans SSMS pour voir le résultat ci-dessous. Quatre de ces enregistrements sont renvoyés par cette requête.
utilisation de Group By avec INNER Join
SQL Inner Join nous permet d’utiliser la clause Group by avec les fonctions aggregate pour regrouper le jeu de résultats par une ou plusieurs colonnes., Group by fonctionne classiquement avec INNER Join sur le résultat final renvoyé après avoir rejoint deux tables ou plus. Si vous n’êtes pas familier avec la clause Group by dans SQL, je suggère de passer par cela pour avoir une compréhension rapide de ce concept. Vous trouverez ci-dessous le code qui utilise la clause Group By avec la jointure interne.
1
2
3
4
5
|
SÉLECTIONNEZ pz.CompanyCity, pz.,CompanyName, SUM (F. UnitsSold) comme TotalQuantitySold
de PizzaCompany PZ
INNER JOIN Foods f sur pz.CompanyId = F. CompanyId
groupe par pz.CompanyCity, pz.CompanyName
commander par pz.CompanyCity
|
Ici, nous avons l’intention d’obtenir le total des articles vendus par chaque Pizza société présents dans la Ville. Comme vous pouvez le voir ci-dessous, le résultat agrégé dans la colonne ‘totalquantitysold’ comme 18 (7+11) et 9 (6+3) pour Los Angeles et San Diego respectivement est calculé.,
une brève note sur Equi et THETA Join
avant de conclure cet article, passons rapidement en revue les Termes, un développeur SQL peut entendre sporadiquement – Equi et Theta Join.
Equi Join
comme son nom l’indique, equi join contient un opérateur d’égalité ‘=’ dans la clause Join ou dans la condition WHERE. SQL Inner, Left, Right sont toutes des jointures equi lorsque l’opérateur ‘ = ‘ est utilisé comme opérateur de comparaison., Habituellement, quand il y a une mention de SQL Inner Join, il est considéré comme une jointure interne equi, dans une situation inhabituelle seulement, l’opérateur d’égalité n’est pas utilisé.
pour faciliter les choses, je vais me référer à L’exemple de base de données AdventureWorksDW2017 et lancer une requête contre les tables existantes pour démontrer à quoi ressemble equi join.
1
2
3
4
|
SÉLECTIONNEZ e.EmployeeKey, e.,FirstName, E. Title, E. HireDate,
fs.SalesAmountQuota de DimEmployee e
INNER JOIN FactSalesQuota fs
sur E. EmployeeKey = fs.EmployeeKey
|
Théta-Jointure (Non-equi rejoindre)
Non-equi jointure est fondamentalement à l’opposé de l’équi-jointure et est utilisé lorsque nous rejoindre sur un état autre que l’opérateur‘=’. Ce type est rarement utilisé dans la pratique., Below is an example that makes use of theta join with an inequality operator (<) to evaluate profit by estimating cost and selling prices in two tables.
1
|
SELECT * FROM Table1 T1, Table2 T2 WHERE T1.ProductCost < T2.,SalesPrice
|
Conclusion
j’espère que cet article sur ‘SQL Inner Join’ fournit une approche compréhensible à l’une des clauses importantes et fréquemment utilisées – ‘Inner join’ dans le serveur SQL pour combiner plusieurs tables. Si vous avez des questions, n’hésitez pas à les poser dans la section commentaires ci-dessous.,
Pour continuer votre apprentissage sur les Jointures SQL, vous pouvez consulter ci-dessous les postes:
- JOINTURE EXTERNE SQL présentation et exemples
- Jointure SQL introduction et vue d’ensemble
- Auteur
- Derniers Posts
elle possède une expérience approfondie dans la conception de solutions de données et d’analyse et en assure la stabilité, la fiabilité et les performances. Elle est également certifiée en SQL Server et a passé des certifications comme 70-463: implémentation D’entrepôts de données avec Microsoft SQL Server.,
Afficher tous les articles par Gauri Mahajan
- Explorez Azure Services d’Analyse du Modèle et des Données – le 4 février 2021
- prise en main grâce à Azure Services d’Analyse – janvier 13, 2021
- Connexion d’Azur Databricks données à Power BI de Bureau – 1er juin 2020
Laisser un commentaire