계층 데이터를 표시하는 SQL 쿼리

매트 리처드슨

두 개의 테이블이 있습니다- '사용자'와 '감독'

이 예에서 사용자 테이블은 매우 간단합니다.

Users
=====
ID (PK)
UserName

일부 사용자는 다른 사용자를 관리하므로이를 관리하기 위해 두 번째 테이블 '감독'을 만들었습니다.

Supervision
===========
UserID
SuperID - this is the ID of the staff member that the user supervises.

이 테이블은 특정 사용자 감독자를 식별하기 위해 사용자 테이블을 자체에 결합하는 데 사용됩니다. 한 사용자에게 두 명 이상의 감독자가있을 수 있으므로이 테이블은이를 위해 완벽하게 작동합니다.

다음은 '사용자'의 샘플 데이터입니다.

userID  userName
1       Bob
2       Margaret
3       Amy
4       Emma
5       Carol
6       Albert
7       Robert
8       Richard
9       Harry
10      Arthur

그리고 '감독'의 내 데이터 :-

userID  superID
1       2
1       3
2       4
2       5
3       4
3       5
6       1
6       7
7       8
7       9
9       10

Bob에게 직접보고하는 사람을 보려면 SQL 쿼리를 작성하는 것이 간단하며 Margaret과 Amy가 자신의 직속보고 자라고 말합니다.

하지만 제가하고 싶은 것은 Bob 아래에있는 모든 사람을 표시하는 쿼리를 작성하는 것이므로 Bobs 직속 부하 직원과 부하 직원 등을 살펴 봐야합니다. Margaret, Amy, Emma, ​​Carol 이 경우 결과로.

나는 이것이 일종의 재귀를 요구한다고 가정하고 있지만 나는 완전히 갇혀있다 ..

네나드 지브코비치

재귀 CTE를 사용해야합니다 .

WITH RCTE AS 
(
    SELECT * FROM dbo.Supervision WHERE UserID = 1
    UNION ALL
    SELECT s.* FROM dbo.Supervision s 
        INNER JOIN RCTE r ON s.userID = r.superID
)
SELECT DISTINCT u.userID, u.userName 
FROM RCTE r
LEFT JOIN dbo.Users u ON r.superID = u.userID

SQLFiddle 데모

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

상위 하위 항목이있는 계층 적 SQL 쿼리

분류에서Dev

두 개의 테이블이있는 Oracle SQL 계층 쿼리

분류에서Dev

SQL Server 2014에서 계층 적 데이터를 표시하는 방법

분류에서Dev

각 개인에 대한 모든 하위 계층 계층의 모든 소득 합계를 표시하는 쿼리

분류에서Dev

관리자 계층 구조를 롤 다운하기위한 SQL 쿼리

분류에서Dev

조인이있는 계층 쿼리

분류에서Dev

첫 번째 계층의 결과에서 데이터를 쿼리하여 두 번째 계층의 데이터를 쿼리합니다.

분류에서Dev

Oracle SQL 계층 적 쿼리

분류에서Dev

SalesMan이 변경 될 때마다 총계를 표시하는 SQL 쿼리

분류에서Dev

여러 하위 요소가있는 SQL 쿼리 계층 적 XML

분류에서Dev

Amazon AMS에서 집계 데이터를 분할하는 SQL 쿼리

분류에서Dev

부모-자식 트리 계층 구조가있는 SQL 쿼리

분류에서Dev

언어 종속 데이터를 사용하여 PostgreSQL에서 계층 적 쿼리를 수행하는 방법

분류에서Dev

선택 계층 쿼리를 수행하는 가장 효율적인 방법-SQL Server 2014

분류에서Dev

Retrosheet 야구 데이터를 사용하여 SQL 쿼리 그룹화 및 계산

분류에서Dev

합계를 계산하기 위해 테이블에서 데이터를 가져 오는 SQL SELECT 쿼리

분류에서Dev

희소 데이터를 고밀도 데이터로 변환하는 Oracle 계층 적 쿼리를 만드는 방법

분류에서Dev

여러 테이블에서 데이터를 가져오고 html 테이블에 표시하는 SQL 쿼리

분류에서Dev

계층 적 데이터를 생성하기위한 복잡한 재귀 SQL

분류에서Dev

하위 행을 반환하는 계층 쿼리 SQL : 연결 기준

분류에서Dev

집계 쿼리를 사용하여 올바른 데이터 세트를 가져 오는 SQL

분류에서Dev

특이 치를 제외한 데이터 세트의 평균을 계산하는 Oracle SQL 쿼리

분류에서Dev

SQL Server : 두 조건부 논리에 대한 재귀 고급 쿼리 계층 관계가 표시되지 않음

분류에서Dev

Oracle SQL-계층 적 쿼리

분류에서Dev

계층 적 하위 쿼리를 사용하여 계층 구조 경로를 작성하는 방법

분류에서Dev

SQL 쿼리는 존재하는 것보다 더 많은 데이터를 계산합니다.

분류에서Dev

사이드 로우가없는 계층 적 쿼리

분류에서Dev

다른 테이블 데이터를 추가하는 SQL 쿼리

분류에서Dev

Terraform을 통해 Azure Sql의 서버리스 컴퓨팅 계층에서 새 데이터베이스를 만드는 방법

Related 관련 기사

  1. 1

    상위 하위 항목이있는 계층 적 SQL 쿼리

  2. 2

    두 개의 테이블이있는 Oracle SQL 계층 쿼리

  3. 3

    SQL Server 2014에서 계층 적 데이터를 표시하는 방법

  4. 4

    각 개인에 대한 모든 하위 계층 계층의 모든 소득 합계를 표시하는 쿼리

  5. 5

    관리자 계층 구조를 롤 다운하기위한 SQL 쿼리

  6. 6

    조인이있는 계층 쿼리

  7. 7

    첫 번째 계층의 결과에서 데이터를 쿼리하여 두 번째 계층의 데이터를 쿼리합니다.

  8. 8

    Oracle SQL 계층 적 쿼리

  9. 9

    SalesMan이 변경 될 때마다 총계를 표시하는 SQL 쿼리

  10. 10

    여러 하위 요소가있는 SQL 쿼리 계층 적 XML

  11. 11

    Amazon AMS에서 집계 데이터를 분할하는 SQL 쿼리

  12. 12

    부모-자식 트리 계층 구조가있는 SQL 쿼리

  13. 13

    언어 종속 데이터를 사용하여 PostgreSQL에서 계층 적 쿼리를 수행하는 방법

  14. 14

    선택 계층 쿼리를 수행하는 가장 효율적인 방법-SQL Server 2014

  15. 15

    Retrosheet 야구 데이터를 사용하여 SQL 쿼리 그룹화 및 계산

  16. 16

    합계를 계산하기 위해 테이블에서 데이터를 가져 오는 SQL SELECT 쿼리

  17. 17

    희소 데이터를 고밀도 데이터로 변환하는 Oracle 계층 적 쿼리를 만드는 방법

  18. 18

    여러 테이블에서 데이터를 가져오고 html 테이블에 표시하는 SQL 쿼리

  19. 19

    계층 적 데이터를 생성하기위한 복잡한 재귀 SQL

  20. 20

    하위 행을 반환하는 계층 쿼리 SQL : 연결 기준

  21. 21

    집계 쿼리를 사용하여 올바른 데이터 세트를 가져 오는 SQL

  22. 22

    특이 치를 제외한 데이터 세트의 평균을 계산하는 Oracle SQL 쿼리

  23. 23

    SQL Server : 두 조건부 논리에 대한 재귀 고급 쿼리 계층 관계가 표시되지 않음

  24. 24

    Oracle SQL-계층 적 쿼리

  25. 25

    계층 적 하위 쿼리를 사용하여 계층 구조 경로를 작성하는 방법

  26. 26

    SQL 쿼리는 존재하는 것보다 더 많은 데이터를 계산합니다.

  27. 27

    사이드 로우가없는 계층 적 쿼리

  28. 28

    다른 테이블 데이터를 추가하는 SQL 쿼리

  29. 29

    Terraform을 통해 Azure Sql의 서버리스 컴퓨팅 계층에서 새 데이터베이스를 만드는 방법

뜨겁다태그

보관