sql >> Base de Datos >  >> RDS >> Mysql

MySQL LEFT JOIN 3 tablas

Está intentando unirse a Person_Fear.PersonID en Person_Fear.FearID - Esto realmente no tiene sentido. Probablemente quieras 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

Esto une Persons en Fears a través de la tabla intermedia Person_Fear . Porque la unión entre Persons y Person_Fear es un LEFT JOIN , obtendrá todas las 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