[SQL] MySQL은 LEFT 3 개 테이블을 조인
SQLMySQL은 LEFT 3 개 테이블을 조인
내가 3 개 테이블이 :
Persons (PersonID, Name, SS) Fears (FearID, Fear) Person_Fear (ID, PersonID, FearID)
지금은 두려움 (복수 두려움이 될 수뿐만 아니라 아무것도 할 수 없다) 그들에게 연결되어 무엇 이건 모든 사람을 나열하고 싶습니다. 위격 테이블은 사람이 그들에게 연결된 두려움이없는 경우에도 표시해야합니다.
내가 가입 나는 왼쪽을 할 필요가 있다고 생각하지만, 내 코드가 작동하지 않습니다
SELECT persons.name,
persons.ss,
fears.fear
FROM persons
LEFT JOIN fears
ON person_fear.personid = person_fear.fearid
어떻게 내가 여기 잘못 한거야?
해결법
-
==============================
1.당신은 Person_Fear.FearID에 Person_Fear.PersonID에 가입하려고하는 -이 정말 이해가되지 않습니다. 당신은 아마 뭔가를 원하는 :
당신은 Person_Fear.FearID에 Person_Fear.PersonID에 가입하려고하는 -이 정말 이해가되지 않습니다. 당신은 아마 뭔가를 원하는 :
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
이 중간 테이블 Person_Fear을 통해 두려움에 사람을 결합한다. (가) 사람 사이에 가입하고 Person_Fear은 좌 가입하기 때문에, 모든 사람 기록을 얻을 것이다.
또한 :
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
-
==============================
2.이 시도
이 시도
SELECT p.Name, p.SS, f.Fear FROM Persons p LEFT JOIN Person_Fear fp ON p.PersonID = fp.PersonID LEFT JOIN Fear f ON f.FearID = fp.FearID
-
==============================
3.이 확실히 일을보십시오.
이 확실히 일을보십시오.
SELECT p.PersonID AS person_id, p.Name, p.SS, f.FearID AS fear_id, f.Fear FROM person_fear AS pf LEFT JOIN persons AS p ON pf.PersonID = p.PersonID LEFT JOIN fears AS f ON pf.PersonID = f.FearID WHERE f.FearID = pf.FearID AND p.PersonID = pf.PersonID
-
==============================
4.
Select p.Name, p.SS, f.fear From Persons p left join Person_Fear pf inner join Fears f on pf.fearID = f.fearID on p.personID = pf.PersonID
-
==============================
5.
Select Persons.Name, Persons.SS, Fears.Fear From Persons LEFT JOIN Persons_Fear ON Persons.PersonID = Person_Fear.PersonID LEFT JOIN Fears ON Person_Fear.FearID = Fears.FearID;
from https://stackoverflow.com/questions/16222097/mysql-left-join-3-tables by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 의 차이는 동등 조인, 가입 시타 및 자연 조인 (0) | 2020.05.07 |
---|---|
[SQL] SQL에서 다른 테이블로 테이블의 모든 값을 삽입 (0) | 2020.05.07 |
[SQL] 오라클 SQL의 테이블에 대한 모든 제약 조건의 이름을 표시 (0) | 2020.05.07 |
[SQL] SQLite는 : CURRENT_TIMESTAMP 기계의하지 시간대, GMT에 (0) | 2020.05.07 |
[SQL] PostgreSQL은 단어의 목록 중 어떤 LIKE 와일드 카드를 (0) | 2020.05.07 |