2011-11-12 2 views
3

나는 인터넷에서 자기 조인을 이해하려고 노력했지만 만족스러운 설명을 찾을 수 없었다. 아무도 그것을 사용하는 곳과 그것을 사용하는 이유와 같은 예제로 그것을 설명 할 수 있습니까? 당신이 질의로 설명 할 수 있다면 좋을 것입니다.설명 자체 참여

답변

6

예를 포함하여 위키 백과의 조인 (SQL) 페이지에 특정 entry about self-join이 있습니다. 또 다른 예로서

, 당신은 혈통을 표시하는 IdParentId의 열이있는 사람의 테이블을 가지고 가정, 당신은 같은 것을 할 수 있습니다 정상이 사본에 가입 그것은이 동일

SELECT parent.Name, child.Name 
FROM Person parent 
INNER JOIN Person child ON parent.Id = child.ParentId 
0

자체 조인은 관리자에게 관계형 데이터를 단일 테이블로 중앙 집중화하는 강력한 방법을 제공합니다. 사실 자체 조인은 특정 테이블을 자체 테이블에 조인하여 수행됩니다.
http://www.devshed.com/c/a/MySQL/MySQL-Table-Joins/4/

1

자기 조인을 원하는 이유 중 하나는 테이블에서 중복 된 것을 찾는 것입니다. 테이블에 같은 이름의 사람들을 찾으려면 다음과 같이 할 수 있습니다.

SELECT table1.name FROM people AS table1 , people AS table2 
WHERE table1.name = table2.name 
AND table1.id != table2.id 
3

자기 결합을 사용하는 이유는 계층 구조입니다.

예 : 모든 직원이 테이블에 있습니다. 모든 직원에게는 관리자가 있습니다. 따라서 관리자와 직원을 연결할 수 있습니다.

표 emp (loyee). COLS의 EMP_ID, 관리자, 이름

그래서 당신은

select e.name employeename, m.name managername 
from emp e, emp m where e.manager = m.emp_id 
0

SELF가 가입 관리자의 이름과 함께 모든 직원을 얻을 수 있을까? 우리는 '관리자', CONCAT (e.name, ',', e.email)이 표 enter image description here

SELECT CONCAT에게 (m.name, ',', m.email)을 가지고 예를 들어

AS '기자'로부터 콜라주 전자 JOIN 콜라주 m ON m.emp_id = e.role_id;

enter image description here