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!