Maison > base de données > tutoriel mysql > Comment joindre efficacement quatre tables SQL avec des identifiants partagés ?

Comment joindre efficacement quatre tables SQL avec des identifiants partagés ?

DDD
Libérer: 2025-01-14 10:11:46
original
234 Les gens l'ont consulté

How to Efficiently Join Four SQL Tables with Shared IDs?

Rejoignez plusieurs tables SQL en utilisant l'ID

Dans la gestion de bases de données, la jointure de tables est une opération clé pour récupérer et corréler des données provenant de plusieurs sources de données. Lorsque vous travaillez avec des ensembles de données interdépendants, les tableaux doivent être fusionnés sur la base d'identifiants communs.

Considérez le scénario suivant :

Vous disposez de quatre tables différentes nommées TableA, TableB, TableC et TableD. Leur structure est la suivante :

<code>TableA - aID | nameA | dID
TableB - bID | nameB | cID | aID
TableC - cID | nameC | date
TableD - dID | nameD</code>
Copier après la connexion

À partir de TableA, vous souhaitez effectuer une jointure avec TableB via la colonne partagée "aID". De plus, vous souhaitez connecter TableA à TableC en utilisant TableB comme intermédiaire. L'instruction SQL suivante permet d'y parvenir :

<code>SELECT TableA.*, TableB.*, TableC.*
FROM (TableB INNER JOIN TableA ON TableB.aID= TableA.aID)
INNER JOIN TableC ON(TableB.cID= Tablec.cID)
WHERE (DATE(TableC.date)=date(now()))</code>
Copier après la connexion

Cependant, lorsque j'essaie d'incorporer TableD dans une requête à l'aide de la colonne « dID », je rencontre une erreur indiquant que « TableD » est inconnu.

La solution réside dans l'ajout d'une autre instruction de jointure. Une version corrigée de la requête est présentée ci-dessous :

<code>SELECT TableA.*, TableB.*, TableC.*, TableD.*
FROM TableA
    JOIN TableB
        ON TableB.aID = TableA.aID
    JOIN TableC
        ON TableC.cID = TableB.cID
    JOIN TableD
        ON TableD.dID = TableA.dID
WHERE DATE(TableC.date)=date(now())</code>
Copier après la connexion

Dans cette requête modifiée, TableA est directement connectée à TableD via la colonne "dID". Cette approche fusionne avec succès les quatre tables, vous permettant de récupérer les données de toutes les tables de manière cohérente.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal