복붙노트

[SQL] SELF 무엇을 가입하고 당신이 그것을 할 때를 사용해야합니까? [복제]

SQL

SELF 무엇을 가입하고 당신이 그것을 할 때를 사용해야합니까? [복제]

자기가 무엇을 가입하고 당신이 그것을 할 때를 사용해야합니까? 내가 예와 평신도 설명이 좋은 것, 그래서 자기 조인을 이해하지 않습니다.

해결법

  1. ==============================

    1.당신은 그 자체로 할 때 테이블 참조 데이터를 결합 자체를 사용합니다.

    당신은 그 자체로 할 때 테이블 참조 데이터를 결합 자체를 사용합니다.

    예를 들어, 직원 테이블은 SupervisorID 열을 가질 수도 현재 직원의 상사 직원 가리.

    데이터를 조회 한 행에 두 사람에 대한 정보를 얻으려면, 당신은 자기는 다음과 같이 가입 수 :

    select e1.EmployeeID, 
        e1.FirstName, 
        e1.LastName,
        e1.SupervisorID, 
        e2.FirstName as SupervisorFirstName, 
        e2.LastName as SupervisorLastName
    from Employee e1
    left outer join Employee e2 on e1.SupervisorID = e2.EmployeeID
    
  2. ==============================

    2.당신이 직원과 그 직계 관리자의 목록을 싶었던 음, 하나의 전형적인 예이다 :

    당신이 직원과 그 직계 관리자의 목록을 싶었던 음, 하나의 전형적인 예이다 :

    select e.employee as employee, b.employee as boss
    from emptable e, emptable b
    where e.manager_id = b.empolyee_id
    order by 1
    

    같은 테이블에 저장된 행 사이에 어떤 관계가있는 곳은 기본적으로 사용됩니다.

    등등...

  3. ==============================

    3.당신이 자체 테이블을 조인 할 때 자체 조인은 간단하다. 더 SELF 당신은 단지에 관련된 두 테이블이 같은 테이블 조인 경우 일반 가입 쓰기, 키워드가 JOIN 없습니다. 주의 사항 한 가지는 당신이 자기가 가입 할 때 그렇지 않으면 테이블 이름이 모호 할 것이다 테이블 별칭을 사용할 필요가 있다는 것입니다.

    당신이 자체 테이블을 조인 할 때 자체 조인은 간단하다. 더 SELF 당신은 단지에 관련된 두 테이블이 같은 테이블 조인 경우 일반 가입 쓰기, 키워드가 JOIN 없습니다. 주의 사항 한 가지는 당신이 자기가 가입 할 때 그렇지 않으면 테이블 이름이 모호 할 것이다 테이블 별칭을 사용할 필요가 있다는 것입니다.

    자식 관계 - 당신은 예를 들어, 같은 테이블에서 행의 상관 관계 쌍에 부모를 할 때 유용합니다. 다음 쿼리는 카테고리 '주방'의 모든 즉각적인 하위 범주의 이름을 반환합니다.

    SELECT T2.name
    FROM category T1
    JOIN category T2
    ON T2.parent = T1.id
    WHERE T1.name = 'Kitchen'
    
  4. ==============================

    4.SQL은 단순히 정상적인 자체에 테이블을 조인하는 데 사용되는 조인 자체 조인.

    SQL은 단순히 정상적인 자체에 테이블을 조인하는 데 사용되는 조인 자체 조인.

    예:

    Select *
    FROM Table t1, Table t2
    WHERE t1.Id = t2.ID
    
  5. ==============================

    5.당신이 사용하는 것 자체에 "의미"하는 테이블 자체를 조인 - 예를 들어, 관리자 ID가 같은 테이블에 직원 ID에 대한 외래 키입니다 직원의 테이블.

    당신이 사용하는 것 자체에 "의미"하는 테이블 자체를 조인 - 예를 들어, 관리자 ID가 같은 테이블에 직원 ID에 대한 외래 키입니다 직원의 테이블.

    예:

    SELECT E.name, ME.name AS manager
    FROM dbo.Employees E
    LEFT JOIN dbo.Employees ME
    ON ME.employeeid = E.managerid
    
  6. from https://stackoverflow.com/questions/3362038/what-is-self-join-and-when-would-you-use-it by cc-by-sa and MIT license