게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
SQL문에서 3단 JOIN 이상 한 상태에 해당값이 없으면 JOIN된 해
게시물ID : programmer_22297짧은주소 복사하기
작성자 : 취업희망
추천 : 0
조회수 : 531회
댓글수 : 1개
등록시간 : 2018/04/15 00:56:23
                       

contents 테이블

r_wr_id bo_table title
23 free  
45 game '안해요'

 

g5_write_free 테이블

wr_id at_create subject
23   '안녕하세요'
     

 

g5_write_game 테이블

wr_id at_create subject
45   '게임해요'
     

 

g5_write_notice 테이블

wr_id at_create subject
53   '공지사항입니다.'
     

SELECT *

FROM contents AS C 
LEFT JOIN g4_write_free AS F
ON (C.r_wr_id = F.wr_id) 
LEFT JOIN g4_write_game AS G 
ON (C.r_wr_id = G.wr_id) 

LEFT JOIN g4_write_notice AS N 
ON (C.r_wr_id = N.wr_id) 
WHERE C.r_bo_table = "free" OR C.r_bo_table = "game" OR C.r_bo_table = "notice"

 

 

 contents 테이블 기준으로 

LEFT JOIN 해서 출력하는 SQL문입니다.

 

매칭 경우는 contents 테이블의 r_wr_id 와 해당 테이블의 wr_id로 매칭하게 됩니다.

 

문제는 만약 contents의 테이블의 title NULL 값이면

해당 테이블 JOIN한 매칭된 subject 값을 가져올려고 합니다.

 

반대로 contents의 테이블의title값이 있다면 그냥 여기서 가져올려고 합니다.

 

일단 제가 고민한것은

 

IFNULL(C.title, subject) AS title  

 를 이용해서 할려고 하지만 

 

JOIN 한게 3개 이상이라 이렇게는 안되네요 ㅠ,ㅠ

 

혹시 좋은 방법은 없을까요?

 

 

전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호