Mam 4 różne stoły, do których chcę dołączyć. Tabele mają następującą strukturę kolumn:
TableA - aID | nameA | dID
TableB - bID | nameB | cID | aID
TableC - cID | nameC | date
TableD - dID | nameD
Zaczynając od tabeli A, rozumiem, jak ŁĄCZYĆ tabele a i c za pomocą b, ponieważ b ma klucze podstawowe dla tych tabel. Chcę mieć możliwość dołączenia do tabeli TableD również na TableA. Poniżej znajduje się moja instrukcja SQL, która najpierw łączy tabele A i B, a następnie łączy je z 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()))
Kiedy próbuję dodać kolejne sprzężenie, aby uwzględnić D, pojawia się błąd, że „TableD” jest nieznane:
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
jest,ON
TableC.cID = TableB.cID
a nieTableC.cID = TableA.cID
. Zakładałem, że dołączamyTableA
do pozostałych 3 stołów.źródło
Nie dołączyłeś do TableD, po prostu wybrałeś TableD FIELD (
dID
) z jednej z tabel.źródło
źródło