MySQL에 다음 쿼리가 있습니다.
select first_name, idStudent2
from `Student` join `Friend`
on `Student`.`idStudent` = `Friend`.`idStudent1`;
그것은 결과를 준다
Camille 1
Emily 5
Bob 6
Bob 7
...
결과는 학생 이름과 그 학생 친구의 학생 ID를 보여줍니다.
명명 Student
된 테이블은 (학교) 데이터베이스에있는 모든 학생의 테이블입니다. Friend
학생에 대한 단항 다 대다 관계입니다.
두 번째 열에 학생 ID를 표시하는 결과 대신 해당 ID에 해당하는 학생 이름을 표시하고 싶습니다.
idStudent1
과 idStudent2
의 기본 키 외래 키 가리키는 Student
테이블. 따라서 기본적으로 외래 키가 idStudent2
가리키는 테이블 행의 정보에 액세스하는 수단을 원합니다 .
원하는 결과는 다음과 같습니다.
Camille Trevor
Emily Bob
Bob James
Bob Katrina
...
당신이해야 할 일은 Student
테이블을 두 번 조인하는 것 입니다. 한 번에 Friend.idStudent1
한 번Friend.idStudent2
select s1.first_name, s2.first_name
from Friend f
join Student s1 on s1.idStudent = f.idStudent1
join Student s2 on s2.idStudent = f.idStudent2;
동일한 테이블을 두 번 조인 할 때 별칭을 사용하여 구분해야합니다. 여기에 내가 사용한 적이 s1
과 s2
을위한 Student
테이블과 f
을위한 Friend
테이블. 별칭은 쿼리를 짧고 깔끔하게 유지하는데도 도움이됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다