Eu tenho 4 tabelas diferentes nas quais quero entrar. As tabelas estão estruturadas com colunas da seguinte maneira:
TableA - aID | nameA | dID
TableB - bID | nameB | cID | aID
TableC - cID | nameC | date
TableD - dID | nameD
Começando com a Tabela A, entendo como JOIN as tabelas a e c usando b, uma vez que b possui as Chaves Primárias para essas tabelas. Também quero ingressar na tabela TableD na tabela A. Abaixo está minha instrução SQL que primeiro une as tabelas A e B e depois associa isso a 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()))
Quando tento adicionar outra associação, para incluir D, recebo um erro que 'TableD' é desconhecido:
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
éON
TableC.cID = TableB.cID
e nãoTableC.cID = TableA.cID
. Presumi que estamos nos juntandoTableA
às outras 3 mesas.fonte
Você não ingressou na TableD, apenas selecionou o TableD FIELD (
dID
) de uma das tabelas.fonte
fonte