J'ai 4 tables différentes que je souhaite rejoindre. Les tableaux sont structurés avec des colonnes comme suit:
TableA - aID | nameA | dID
TableB - bID | nameB | cID | aID
TableC - cID | nameC | date
TableD - dID | nameD
À partir de la table A, je comprends comment JOIN des tables a et c en utilisant b, puisque b a les clés primaires pour ces tables. Je veux également pouvoir joindre la table TableD sur TableA. Voici mon instruction SQL qui joint d'abord les tables A et B, puis joint cela à C:
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()))
Lorsque j'essaie d'ajouter une autre jointure, pour inclure D, j'obtiens une erreur indiquant que 'TableD' est inconnu:
SELECT TableA.*, TableB.*, TableC.*, TableD.* FROM (TableB INNER JOIN TableA
ON TableB.aID= TableA.aID)
INNER JOIN TableC ON(TableB.cID= Tablec.cID)
INNER JOIN TableA ta ON(ta.dID= TableD.dID)
WHERE (DATE(TableC.date)=date(now()))
JOINTableC
estON
TableC.cID = TableB.cID
et nonTableC.cID = TableA.cID
. J'ai supposé que nous rejoignionsTableA
les 3 autres tables.la source
Vous n'avez pas rejoint TableD, vous avez simplement sélectionné le CHAMP TableD (
dID
) dans l'une des tables.la source
la source