Les jointures BigQuery : un guide pas à pas

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.

BigQuery Joins 1

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 :

BigQuery Joins 2

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.

BigQuery Joins 3

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.

Joints BigQuery 4

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.

Joints BigQuery 5

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. 

Joints BigQuery 6

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”.

Joints BigQuery 7

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 ;

Joints BigQuery 8

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 ;

Joints BigQuery 9

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 ;

BigQuery Joins 10

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.

Gérer facilement de grands ensembles de données

Utilisez Sheetgo pour connecter BigQuery à Google Sheets et traiter efficacement des données volumineuses.

Vous pouvez aussi aimer...

Au-delà de la RPA : Pourquoi l'avenir de l'automatisation des feuilles de calcul est axé sur les données

Vous avez cherché "RPA" pour éliminer les tâches répétitives. Mais que se passe-t-il si le problème n'est pas la tâche, mais les données ? Le "réflexe RPA" Chaque équipe...

Comment connecter votre lac aux utilisateurs professionnels - avec une base de données sans code

Vous avez investi dans un Lakehouse moderne. Pourquoi votre équipe financière vous demande-t-elle encore des exportations CSV ? Le paradoxe des données modernes Vous avez construit un...
science des données

Gestion des stocks de bijoux : comment choisir le bon système ?

La gestion des stocks de bijoux est plus complexe que dans d'autres secteurs. Avec des articles de grande valeur, des matières premières précieuses et des...