Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL LEFT JOIN 3 tabelas


Você está tentando ingressar em Person_Fear.PersonID para Person_Fear.FearID - Isso realmente não faz sentido. Você provavelmente quer algo como:
SELECT Persons.Name, Persons.SS, Fears.Fear FROM Persons
LEFT JOIN Person_Fear
    INNER JOIN Fears
    ON Person_Fear.FearID = Fears.FearID
ON Person_Fear.PersonID = Persons.PersonID

Isso une Persons para Fears através da tabela intermediária Person_Fear . Porque a junção entre Persons e Person_Fear é um LEFT JOIN , você obterá todas as Persons registros.

Alternativamente:
SELECT Persons.Name, Persons.SS, Fears.Fear FROM Persons
LEFT JOIN Person_Fear ON Person_Fear.PersonID = Persons.PersonID
LEFT JOIN Fears ON Person_Fear.FearID = Fears.FearID