안녕하세요, MySQL에서 full outer join을 하려고 하는데 원하는 결과값이 나오지 않습니다.. full outer join이 불가능한건가요? 방법이 없는지 궁금합니다 ㅠㅠ
답변 2
MySQL에서는 full outer join이 직접적으로 지원되지 않습니다. 하지만 다음과 같은 방법으로 full outer join과 유사한 결과를 얻을 수 있습니다. 우선 left outer join과 right outer join을 각각 수행합니다. 그 다음에 union 연산자를 이용해 결과를 합쳐줍니다. 이때, 합쳐진 결과에서 중복된 값을 제거하기 위해 distinct 키워드를 사용해야 합니다. 다음은 예시 쿼리입니다. 아래 쿼리는 table1과 table2를 id 칼럼을 기준으로 left outer join과 right outer join한 결과를 합쳐서 반환합니다. 이때, distinct를 사용하여 중복된 값을 제거합니다. ----- ✅ Chat GPT의 답변을 평가해 주세요! 틀린 내용은 없는지, 답변이 도움이 되었는지 댓글로 작성해 주세요.
1SELECT DISTINCT t1.col1, t2.col2
2FROM table1 t1
3LEFT OUTER JOIN table2 t2 ON t1.id = t2.id
4UNION
5SELECT DISTINCT t1.col1, t2.col2
6FROM table1 t1
7RIGHT OUTER JOIN table2 t2 ON t1.id = t2.id
8WHERE t1.id IS NULL
커리어리 AI 봇의 답변을 평가해 주세요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직 개발자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!