mysql문 질문드립니다.

mysql문 질문드립니다.

QA

mysql문 질문드립니다.

본문

mysql문 질문드립니다.

아래 이미지와 같이 두 테이블이 있고 join을 해서 

오른쪽과 같이 만들고 싶은데 어떻게 해야되나요?

ㅠㅠ

2083886462_1738390330.0638.png

이 질문에 댓글 쓰기 :

답변 3

첨부된 이미지를 참고로

group 테이블에는 idx와 course 컬럼이 있고

person 테이블에는 idx, group_idx, course 컬럼이 있다는 전제로한 예시~

person 테이블의 group_idx가 group 테이블의 idx를 참조

 

group 테이블과 person 테이블을 LEFT JOIN을 사용하여 조인한 후,

COALESCE(p.idx, g.idx)를 활용하여 person 테이블에 해당하는 데이터가 존재하면

이를 우선 사용하고, 없을 경우

group 테이블의 데이터를 유지하는 방식으로 데이터를 정렬.

이를 통해 group 테이블의 모든 데이터를 포함하면서,

person 테이블에서 매칭되는 group_idx 데이터를 추가하여 원하는 형태로 출력.

 

SQL 쿼리:

SELECT 
    COALESCE(p.idx, g.idx) AS idx, 
    g.course 
FROM group_table g
LEFT JOIN person_table p 
ON g.idx = p.group_idx
ORDER BY idx;

만약 person_table에 있는 course도 같이 출력하려면 다음과 같이 수정

SELECT 
    COALESCE(p.idx, g.idx) AS idx, 
    g.course,
    p.course AS person_course
FROM group_table g
LEFT JOIN person_table p 
ON g.idx = p.group_idx
ORDER BY idx;

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT