SQL 쿼리의 예 도트 연산자 사용


답변:


0

mcalex가 지적한 것처럼 테이블 참조 이므로이 경우 조인 된 동일한 테이블을 두 번 참조합니다. Person비트 (그래픽)에 따라 사람의 이름이 포함되어 있습니다.

쿼리는 다음과 같습니다.

SELECT  p1.Person AS PERSON, p2.Person AS FRIEND_OF_FRIEND
FROM    PersonFriend pf1 
    JOIN Person p1 ON pf1.PersonID = p1.ID
    JOIN PersonFriend pf2 ON pf2.PersonID = pf1.FriendID
    JOIN Person p2 ON pf2.FriendID = p2.ID
WHERE   p1.Person = "Alice" and pf2.FriendID <> p1.ID

FROM절의 표에 대한 각 언급을주의 깊게보십시오 . 언급 할 때마다 속기 (예 :)가 할당되어 있음을 알 수 있습니다 JOIN Personp1. 다음 shorthands / 참조 이름으로 끝 : p1, p2, pf1pf2. 동안 p1과 것은 p2표 참조 Person, pf1pf2참조 PersonFriend.

일반적인 상황 에서 Person또는 테이블에서와 같이 테이블의 전체 이름을 사용할 수 있지만이 쿼리에 여러 개의 자체 조인이 있으므로 테이블의 특정 인스턴스 인스턴스를 의미하는 다른 필드를 식별하는 다른 방법이 필요합니다.PersonFriendJOINS

편집 : mcalex ( 하나의 쿼리에 두 번 테이블 사용)가 제공 한 참조 에는 자체 조인의 의미에 대한 자세한 정보가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.