반응형
MySQL LEFT JOIN 3 테이블
3 개의 테이블이 있습니다.
사람 (PersonID, 이름, SS) 두려움 (FearID, Fear) Person_Fear (ID, PersonID, FearID)
이제 나는 그들과 관련된 두려움을 가진 모든 사람을 나열하고 싶습니다 (여러 두려움이 될 수 있지만 없을 수도 있습니다). 사람 테이블은 사람과 관련된 두려움이없는 경우에도 표시되어야합니다.
LEFT JOIN이 필요하다고 생각하지만 코드가 작동하지 않는 것 같습니다.
SELECT persons.name,
persons.ss,
fears.fear
FROM persons
LEFT JOIN fears
ON person_fear.personid = person_fear.fearid
내가 여기서 뭘 잘못하고 있니?
당신은 가입하려고 Person_Fear.PersonID
에 Person_Fear.FearID
- 이것은 정말 이해가되지 않습니다. 아마도 다음과 같은 것을 원할 것입니다.
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
이것은 중간 테이블 Persons
을 Fears
통해 결합 Person_Fear
됩니다. (가) 사이에 결합하기 때문에 Persons
하고 Person_Fear
있는 LEFT JOIN
, 당신은 모든 얻을 것이다 Persons
기록.
또는 :
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
이 시도
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
이 작업을 확실히 시도하십시오.
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
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
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;
참고URL : https://stackoverflow.com/questions/16222097/mysql-left-join-3-tables
반응형
'program tip' 카테고리의 다른 글
AngularJS-조건부로 항목을 반환하기 위해 ng-repeat로 사용자 지정 필터를 구성하는 방법 (0) | 2020.12.11 |
---|---|
Angular, 콘텐츠 유형이 $ http로 전송되지 않음 (0) | 2020.12.11 |
예기치 않은 JavaScript 가능한 반복 (0) | 2020.12.11 |
다른 기능에 영향을주지 않고 Firebase 용 Cloud Functions에 일부 기능을 배포하는 방법은 무엇입니까? (0) | 2020.12.10 |
Linux (라이브러리 또는 실행 파일)에서 바이너리 파일의 대상 ISA 확장을 결정합니다. (0) | 2020.12.10 |