반응형

'순위 정하기'에 해당되는 글 1건

  1. 2017.12.08 MySQL 셀프 조인. 2

MySQL 셀프 조인.

MySQL 2017. 12. 8. 12:10
반응형

셀프 조인이란?

결합에는 자기 자신 즉, 같은 이름의 테이블을 결합하는 방법이 있습니다. 이를 셀프 조인이라 합니다. 같은 이름의 테이블을 결합하는 것이기 때문에 실행하면 같은 컬럼 이름이 2개씩 표시됩니다. 이렇게 되면 컬럼을 구별하기가 어렵기 때문에, 셀프 조인을 할 때에는 반드시 별명을 사용합니다.

명령은 다음과 같습니다.

select 컬럼명 from 테이블명 as 별명1 join 테이블명 as 별명2;

 

select * from table_member;

 

select * from table_member as A

join table_member as B

셀프 조인한 결과를 보면 모든 경우의 수를 표시한 것과 같다.

 

순위 정하기

테이블에 같은 테이블을 결합하는 이유는 무엇일까요? 셀프 조인을 한 결과에는 적어도 모든 경우의 조합이 존재합니다. 따라서 얻고자 하는 조합이 그 결과 안에 존재한다면, 그 다음에는 조건을 설정해서 필요한 것만 선택하면 됩니다.

셀프 조인을 이용해서 Table_member name, age, 순위를 표시해 보겠습니다.

순위를 구하는 방법은 셀프 조인 했을 때 값을 보면 오른쪽이 같은 값으로 구성된 5개의 레코드 중에서 오른쪽 age 이상인 왼쪽 age의 개수가 순위가 됩니다.

즉 셀프 조인을 하고 나서 왼쪽의 age가 오른쪽의 age 이상인 레코드의 수를 number의 그룹별로 개수를 조사하면 됩니다. 개수는 count(*)로 계산합니다.

 

 

select A.name, A.age, count(*) from table_member as A

join table_member as B

where A.age <= B.age

group by A.number;

 

 

 

반응형

'MySQL' 카테고리의 다른 글

MySQL 뷰 이용하기.  (0) 2017.12.13
MySQL SELECT한 레코드에서 또 SELECT하기 – 하위 질의  (0) 2017.12.11
MySQL 외부 JOIN 사용하기.  (0) 2017.12.07
MySQL 내부 JOIN ON 사용하기.  (0) 2017.12.06
MySQL UNION 사용하기.  (0) 2017.12.05
Posted by 컴스터
,


반응형