프래그래머스 SQL 문제를 통해 union으로 2개의 쿼리문이 합쳐진 결과물을 order by하는 방법을 알아보자.
문제 설명
FRIENDS 테이블은 게임 내 친구 관계 정보를 담고 있습니다. FRIENDS 테이블 구조는 다음과 같으며 ID1, ID2 쌍은 ID1과 ID2가 서로 친구라는 뜻입니다. 이 테이블에서, 친구 관계는 양방향이며, 친구 관계가 중복으로 등록되는 경우는 없습니다. (id1가 id2의 친구이면 id2는 id1의 친구이고, 레코드 id1, id2가 등록되어 있을 때, 레코드 id2, id1가 등록되는 경우는 없습니다)
FRIENDS 테이블 구조
NAME | TYPE | NULLABLE |
ID2 | VARCHAR(N) | FALSE |
ID3 | VARCHAR(N) | FALSE |
문제
FRIENDS 테이블로, solidwillow917 계정의 친구를 찾아내는 SQL 문을 작성해주세요.친구 목록은 닉네임을 사전 순으로 나열해주세요.
예시
예를 들어 FRIENDS 테이블이 다음과 같다면
ID2 | ID3 |
naneekgunpowder1886 | treesbeta791 |
chongqingricochet889 | naneekgunpowder1886 |
adorableblue1813 | treesbeta791 |
solidwillow917 | treesbeta791 |
daysglossy1776 | treesbeta791 |
chongqingricochet889 | solidwillow917 |
solidwillow917의 친구는 treesbeta791와 chongqingricochet889이므로 SQL을 실행하면 다음과 같이 출력되어야 합니다.
ID |
chongqingricochet889 |
treesbeta791 |
mine
SELECT ID2 AS ID FROM FRIENDS WHERE ID3 = "solidwillow917"
UNION SELECT ID3 FROM FRIENDS WHERE ID2 = 'solidwillow917' ORDER BY ID;
위의 쿼리문에서 Alias와 ORDER BY ID를 제외하고 입력했을 경우출력 결과는
ID2 |
chongqingricochet889 |
treesbeta791 |
이라고 나왔다.
그래서 ID2 부분에 AS ID를 붙여주고 ID의 결과물을 알파벳 순으로 나열하겠끔 ORDER BY ID를 해주었다.