Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL LEFT JOIN 3 tables

Vous essayez de rejoindre Person_Fear.PersonID sur Person_Fear.FearID - Cela n'a pas vraiment de sens. Vous voulez probablement quelque chose comme :

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

Ceci rejoint Persons sur Fears via la table intermédiaire Person_Fear . Parce que la jointure entre Persons et Person_Fear est une LEFT JOIN , vous obtiendrez tous les Persons enregistrements.

Sinon :

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