programing

같은 테이블의 여러 열에 대한 내부 결합 실행

lovejava 2023. 3. 15. 17:45

같은 테이블의 여러 열에 대한 내부 결합 실행

제가 좀 빠져있는 시나리오가 있어요.색에 대한 설문조사를 하고 색 데이터를 위한 표와 사람들의 답변을 위한 표가 있다고 가정해 봅시다.

tb컬러

color_code , color_name
     1     , 'blue'
     2     , 'green'
     3     , 'yellow'
     4     , 'red'

Tbanswers

answer_id  ,  favorite_color   ,   least_favorite_color   ,  color_im_allergic_to
    1      ,         1          ,         2                            3  
    2      ,         3          ,         1                            4
    3      ,         1          ,         1                            2
    4      ,         2          ,         3                            4

표시용으로 tbColors의 color_name 열을 사용하여 응답 테이블을 표시하는 SELECT를 작성하려고 합니다.

FROM 섹션에서 tbColors를 3회 명명하고 각 컬럼에 다른 에일리어스를 사용하여 치환하는 "가장 어리석은" 방법을 이해합니다.

답답하지 않은 방법은 어떻게 보일까?

이 방법은 다음과 같습니다.

SELECT
  A.answer_id
  ,C1.color_name AS favorite_color_name
  ,C2.color_name AS least_favorite_color_name
  ,C3.color_name AS color_im_allergic_to_name
FROM tbAnswers AS A
INNER JOIN tbColors AS C1
  ON A.favorite_color = C1.color_code
INNER JOIN tbColors AS C2
  ON A.least_favorite_color = C2.color_code
INNER JOIN tbColors AS C3
  ON A.color_im_allergic_to = C3.color_code

"멍청하다"기보다, 저는 이것이 꽤 표준적인 질문이라고 생각합니다.또한 모든 열에 유효한 값이 있는 것으로 가정합니다.그렇지 않으면 모든 이너 조인을 왼쪽 조인으로 교체합니다.

언급URL : https://stackoverflow.com/questions/2798317/performing-inner-join-for-multiple-columns-in-the-same-table