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
DDDoriginal
2025-01-14 10:11:46233parcourir

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>

À 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>

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>

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!

Déclaration:
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