Lorsque vous utilisez les jointures BigQuery, vous pouvez combiner des données provenant de plusieurs tables. En joignant des tables, vous pouvez interroger des données en fonction des relations et des corrélations entre les ensembles de données.
Cependant, il est important de mentionner qu'il existe quelques types de jointures dans BigQuery SQL : INNER JOIN, LEFT JOIN, RIGHT JOIN et FULL JOIN. Chaque type de jointure vous permet de faire correspondre différemment les lignes entre les tables.
Dans cet article, vous trouverez un tutoriel étape par étape sur la façon d'utiliser les jointures BigQuery pour combiner des données provenant de plusieurs tables.
Note : Si vous ne savez pas encore comment écrire des requêtes SQL de base, consultez ce tutoriel sur l'utilisation de Syntaxe SQL de BigQuery avant de lire cet article.
Guide des jointures SQL dans BigQuery
Avant de commencer à écrire des requêtes à l'aide des jointures BigQuery, nous devons comprendre comment ces quatre types de jointures fonctionnent et comment vous pouvez les utiliser pour fusionner des données dans BigQuery.
INNER JOINLa jointure interne : la jointure interne fait correspondre les lignes entre deux tables et ne renvoie que les lignes correspondantes. Par conséquent, lorsque vous combinez des données, toutes les lignes non correspondantes sont exclues.
JOINT A LA GAUCHEUne jointure gauche fait correspondre toutes les lignes de la table de gauche, même si aucune ligne correspondante n'existe dans la table de droite. Ici, BigQuery renvoie toutes les lignes de la table de gauche et les lignes correspondantes de la table de droite.
JOINTE À DROITEIl s'agit de l'inverse d'une jointure gauche. Elle fait correspondre toutes les lignes de la table de droite même si aucune ligne correspondante n'existe dans la table de gauche.
JOINT COMPLETUne jointure complète combine des jointures à gauche et à droite. Toutes les lignes des deux tables sont renvoyées, qu'elles correspondent ou non.
Explication des types de jointures
Voici une représentation visuelle de ces quatre types de jonction.
Comme vous pouvez le constater, la jointure interne renvoie uniquement les lignes correspondantes, la jointure gauche renvoie toutes les lignes de la table de gauche, la jointure droite renvoie toutes les lignes de la table de droite et la jointure complète renvoie toutes les lignes des deux tables.
En voici un exemple :
Supposons que je dispose de deux tables contenant des informations sur les équipes de basket-ball de la NCAA. Bien que ces tables partagent la colonne “Nom”, elles contiennent également des éléments différents. Je vais combiner les données de ces deux tables, en joignant la colonne “Nom” commune.
En utilisant INNER JOIN, BigQuery ne renvoie que les lignes correspondantes. Voici à quoi ressemblerait le résultat.
Comme vous pouvez le voir, BigQuery a renvoyé les lignes correspondantes, mais a laissé de côté toutes les lignes non correspondantes.
Si j'utilise la jointure LEFT, BigQuery renverra toutes les lignes de la table de gauche. Par conséquent, il laissera de côté toutes les lignes non appariées de la table de droite.
En utilisant RIGHT JOIN, BigQuery renverra toutes les lignes de la table de droite, en laissant de côté les lignes non appariées de la table de gauche.
Enfin, la fonction FULL JOIN renvoie toutes les lignes des deux tables, y compris les lignes non appariées d'un côté ou de l'autre.
Dans tous ces cas, BigQuery renverrait le mot “null” pour remplacer toutes les correspondances manquantes.
Maintenant que vous connaissez les différences entre ces types de jointures, nous allons apprendre à combiner des données à l'aide de ces jointures BigQuery.
INNER JOIN
Tout d'abord, j'utiliserai le mot-clé INNER JOIN car je veux que BigQuery ne renvoie que les lignes correspondantes de deux tables. Voici la syntaxe que j'utiliserai :
Syntaxe INNER JOIN
SELECT nom_de_colonne(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name ;
Je vais vous montrer comment utiliser les jointures BigQuery pour combiner les données de ces ensembles de données de basket-ball de la NCAA. L'une des tables contient des informations sur les équipes de la NCAA (mbb_teams), tandis que l'autre contient des données sur les mascottes de ces équipes.
SELECT *
FROM `bigquery-public-data.ncaa_basketball.mascots` AS mascots
INNER JOIN `bigquery-public-data.ncaa_basketball.mbb_teams` AS teams
ON mascottes.nom = équipes.nom ;
Voyons cela en détail :
1) Tout d'abord, je souhaite sélectionner toutes les colonnes des résultats. J'utiliserai la clause SELECT *.
2) La clause FROM spécifie la première table de la jointure. J'ai utilisé un alias (AS) pour donner à cette table un nom temporaire (“mascottes”), ce qui me permet d'utiliser l'alias ultérieurement plutôt que d'écrire le nom complet de la table.
3) La clause INNER JOIN spécifie la deuxième table. J'ai également utilisé un alias pour nommer cette table.
4) L'instruction ON est la condition de correspondance des colonnes entre les deux tables. Au lieu d'écrire le nom de la table, j'ai utilisé les alias suivis de la colonne : “nom”.
JOINT A LA GAUCHE
Après avoir appris à utiliser l'instruction INNER JOIN, vous pouvez facilement écrire une requête LEFT JOIN en suivant le même modèle.
Syntaxe de la jonction à gauche
SELECT nom_de_colonne(s)
FROM table1
JOINTE DE GAUCHE table2
ON table1.column_name = table2.column_name ;
Voici la formule complète.
SELECT *
FROM `bigquery-public-data.ncaa_basketball.mascots` AS mascots
LEFT JOIN `bigquery-public-data.ncaa_basketball.mbb_teams` AS teams
ON mascottes.nom = équipes.nom ;
JOINTE À DROITE
Écrivons maintenant une requête SQL pour renvoyer uniquement les lignes correspondantes de la bonne table.
Syntaxe du RIGHT JOIN
SELECT nom_de_colonne(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name ;
Voici à quoi ressemblerait la requête.
SELECT *
FROM `bigquery-public-data.ncaa_basketball.mascots` AS mascots
RIGHT JOIN `bigquery-public-data.ncaa_basketball.mbb_teams` AS teams
ON mascottes.nom = équipes.nom ;
JOINT COMPLET
Enfin, nous pouvons utiliser FULL JOIN pour écrire une requête qui renvoie toutes les lignes des deux tables, qu'elles correspondent ou non. Voici la syntaxe du FULL JOIN.
Syntaxe du FULL JOIN
SELECT nom_de_colonne(s)
FROM table1
FULL JOIN table2
ON table1.column_name = table2.column_name ;
Voilà à quoi ressemblerait la requête complète.
SELECT *
FROM `bigquery-public-data.ncaa_basketball.mascots` AS mascots
FULL JOIN `bigquery-public-data.ncaa_basketball.mbb_teams` AS teams
ON mascottes.nom = équipes.nom ;
N'oubliez pas que vous pouvez combiner les clauses JOIN avec d'autres instructions. Par exemple, je pourrais combiner ces deux tables et utiliser WHERE pour filtrer des données spécifiques. Supposons que je veuille que BigQuery ne renvoie que les mascottes commençant par la lettre “A”.
SELECT *
FROM `bigquery-public-data.ncaa_basketball.mascots` AS mascots
FULL JOIN `bigquery-public-data.ncaa_basketball.mbb_teams` AS teams
ON mascottes.nom = équipes.nom
WHERE mascotte LIKE ‘A%’ ;
Les jointures BigQuery : un guide pas à pas
Et voilà ! Voilà comment vous pouvez utiliser les jointures BigQuery pour combiner des données provenant de plusieurs tables. Si vous souhaitez en savoir plus sur BigQuery, consultez cet article sur l'utilisation de Syntaxe SQL de BigQuery pour rédiger vos premières requêtes.
