SQLite
 sql >> Base de données >  >> RDS >> SQLite

Jointure gauche SQLite

Résumé :dans ce tutoriel, vous apprendrez à utiliser SQLite LEFT JOIN clause pour interroger les données de plusieurs tables.

Introduction à SQLite LEFT JOIN clause

Similaire à la INNER JOIN clause, la LEFT JOIN la clause est une clause facultative du SELECT déclaration. Vous utilisez le LEFT JOIN clause pour interroger les données de plusieurs tables liées.

Supposons que nous ayons deux tables :A et B.

  • A a des colonnes m et f.
  • B a n et f colonnes.

Pour effectuer une jointure entre A et B en utilisant LEFT JOIN clause, vous utilisez l'instruction suivante :

SELECT
	a,
	b
FROM
	A
LEFT JOIN B ON A.f = B.f
WHERE search_condition;Code language: SQL (Structured Query Language) (sql)

L'expression A.f = B.f est une expression conditionnelle. Outre l'opérateur d'égalité (=), vous pouvez utiliser d'autres opérateurs de comparaison tels que supérieur à (>), inférieur à (<), etc.

L'instruction renvoie un ensemble de résultats qui inclut :

  1. Lignes du tableau A (tableau de gauche) qui ont des lignes correspondantes dans le tableau B.
  2. Lignes de la table A table et les lignes de la table B remplies avec NULL valeurs dans le cas où la ligne de la table A n'a pas de lignes correspondantes dans la table B.

En d'autres termes, toutes les lignes de la table A sont incluses dans le jeu de résultats, qu'il existe ou non des lignes correspondantes dans la table B.

Au cas où vous auriez un WHERE clause dans l'instruction, la search_condition dans le WHERE la clause est appliquée après la correspondance du LEFT JOIN clause terminée.

Voir l'illustration suivante de la LEFT JOIN clause entre les tables A et B.

Toutes les lignes du tableau A sont incluses dans le jeu de résultats.

Parce que la deuxième ligne (a2,2) n'a pas de ligne correspondante dans la table B, le LEFT JOIN la clause crée une fausse ligne rempli avec NULL .

Le diagramme de Venn suivant illustre la LEFT JOIN clause.

Il est à noter que LEFT OUTER JOIN est identique à LEFT JOIN .

SQLite LEFT JOIN exemples

Nous utiliserons les artists et albums tables dans l'exemple de base de données pour la démonstration.

Un album appartient à un artiste. Cependant, un artiste peut avoir zéro ou plusieurs albums.

Pour trouver des artistes qui n'ont pas d'albums en utilisant le LEFT JOIN clause, nous sélectionnons les artistes et leurs albums correspondants. Si un artiste n'a pas d'albums, la valeur de AlbumId la colonne est NULL.

Pour afficher les artistes qui n'ont pas d'albums en premier, nous avons deux choix :

  • Tout d'abord, utilisez ORDER BY clause pour lister les lignes dont AlbumId est NULL les valeurs en premier.
  • Deuxièmement, utilisez WHERE clause et IS NULL opérateur pour ne lister que les artistes qui n'ont pas d'albums.

L'instruction suivante utilise le LEFT JOIN clause avec le ORDER BY clause.

SELECT
   artists.ArtistId, 
   AlbumId
FROM
   artists
LEFT JOIN albums ON
   albums.ArtistId = artists.ArtistId
ORDER BY
   AlbumId;Code language: SQL (Structured Query Language) (sql)

Essayez-le

L'instruction suivante utilise le LEFT JOIN clause avec le WHERE clause.

SELECT
   artists.ArtistId
   , AlbumId
FROM
   artists
LEFT JOIN albums ON
   albums.ArtistId = artists.ArtistId
WHERE
   AlbumId IS NULL;Code language: SQL (Structured Query Language) (sql)

Essayez-le

Dans ce tutoriel, vous avez appris à utiliser SQLite LEFT JOIN clause pour interroger les données de plusieurs tables.