Maison > base de données > tutoriel mysql > Comment puis-je obtenir une JOINTURE EXTERNE COMPLÈTE dans SQLite ?

Comment puis-je obtenir une JOINTURE EXTERNE COMPLÈTE dans SQLite ?

Patricia Arquette
Libérer: 2025-01-11 07:45:40
original
180 Les gens l'ont consulté

How Can I Achieve a FULL OUTER JOIN in SQLite?

Implémentation de FULL OUTER JOIN dans SQLite

SQLite est un moteur de base de données couramment utilisé qui fournit diverses opérations de connexion, notamment INNER JOIN et LEFT JOIN. Cependant, SQLite ne prend pas en charge nativement FULL OUTER JOIN, ce qui peut poser certains problèmes.

Solution :

Afin d'effectuer FULL OUTER JOIN dans SQLite, nous pouvons combiner LEFT JOIN et UNION ALL. Cette méthode se compose de trois étapes :

  1. Effectuez LEFT JOIN entre deux tables pour obtenir toutes les lignes du tableau de gauche même s'il n'y a aucune ligne correspondante dans le tableau de droite.
  2. Effectuez un LEFT JOIN entre les deux mêmes tables, mais cette fois-ci, échangez l'ordre des tables pour obtenir toutes les lignes du tableau de droite même s'il n'y a pas de lignes correspondantes dans le tableau de gauche.
  3. Utilisez UNION ALL pour combiner les résultats de deux LEFT JOIN afin de fusionner les lignes des deux tableaux.

Exemple :

Considérez les deux tableaux suivants :

<code class="language-sql">CREATE TABLE employee (EmployeeID INTEGER PRIMARY KEY, Name TEXT, DepartmentID INTEGER);
CREATE TABLE department (DepartmentID INTEGER PRIMARY KEY, Name TEXT);</code>
Copier après la connexion

Pour effectuer un FULL OUTER JOIN entre ces deux tables, exécutez la requête suivante :

<code class="language-sql">SELECT employee.*, department.*
FROM   employee 
       LEFT JOIN department 
          ON employee.DepartmentID = department.DepartmentID
UNION ALL
SELECT employee.*, department.*
FROM   department
       LEFT JOIN employee
          ON employee.DepartmentID = department.DepartmentID
WHERE  employee.DepartmentID IS NULL;</code>
Copier après la connexion

Cette requête récupérera toutes les lignes des tables des employés et des services, y compris celles qui n'ont aucune ligne correspondante dans l'autre table.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal