Ich habe 4 verschiedene Tabellen, denen ich beitreten möchte. Die Tabellen sind wie folgt mit Spalten strukturiert:
TableA - aID | nameA | dID
TableB - bID | nameB | cID | aID
TableC - cID | nameC | date
TableD - dID | nameD
Beginnend mit Tabelle A verstehe ich, wie man die Tabellen a und c mit b verbindet, da b die Primärschlüssel für diese Tabellen hat. Ich möchte in der Lage sein, Tabelle TableD auch auf TabelleA zu verbinden. Unten ist meine SQL-Anweisung, die zuerst die Tabellen A und B und dann die mit C verbindet:
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()))
Wenn ich versuche, einen weiteren Join hinzuzufügen, um D einzuschließen, erhalte ich die Fehlermeldung, dass 'TableD' unbekannt ist:
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
istON
TableC.cID = TableB.cID
und nichtTableC.cID = TableA.cID
? Ich nahm an, dass wir unsTableA
den anderen 3 Tischen anschließen.quelle
Sie sind TableD nicht beigetreten, sondern haben lediglich TableD FIELD (
dID
) aus einer der Tabellen ausgewählt.quelle
quelle