0

에서 동일한 기본 키를 참조 :2 외래 키과 같이 MySQL의

테이블 학생 :

다음 sID | 이름

1 ----- 수잔

2 ----- 모건

3 ----- 이안

4 ----- 제임스

차 그래서 같은 주요 주었다면

다른 테이블 :

테이블 - 친구

friendsID | 사람 |

1 ----------- 1 ----------- 3

2 ------------ 1-- personB 2 ---------

3 ------------- (2) (3) -----------

4 ---- --------- 3 ------------ 4

기본 키가

: friendsID, 인물, personB

외래 키 = 인물, personB하는 봇 h 학생 테이블의을 참조하십시오.

personA 및 personB coloumn이 sID를 통해 이름으로 대체되는 방식으로 friends 테이블을 쿼리하는 방법이 필요합니다. 자연스러운 결합을 시도했지만 하나의 외래 키가있는 경우에만 작동합니다.

즉 임 이런 식으로 뭔가를 찾고 :

friendsID | 사람 | personB

1 ----------- 수잔 ----------- 이안

2 ------------ Sushan-- --------- 모건

3 ------------- 모건 ----------- 이안

4 ---- --------- Ian ------------ 제임스

필자는 personB 만 열이고 personB가 없으면 Natural 조인이 작동합니다. 어떤 이유로 나는 자연스러운 조인이 커집니다. select * from friends NATURAL JOIN student;

도와주세요. 감사합니다

답변

3

이 작업을 수행하려면 두 개의 조인을 사용해야합니다. 예를 들어

:

select f.friendsID, 
    s1.name as personA_name, 
    s2.name as personB_name 
from friends f 
    inner join student s1 on s1.sID = f.personA 
    inner join student s2 on s2.sID = f.personB 
+0

브릴리언트, 정말 고마워요! – user2219032