sql join 질문 드립니다.

sql join 질문 드립니다.

QA

sql join 질문 드립니다.

본문

안녕하세요 테이블 조인후 검색하여 노출해야하는데 도움이 필요하여 질문드립니다.

 

"A" TABLE

 

NO ID NAME AGE SEX TEL
1 id1 일번 18 1234-5678
2 id2 이번 15 8978-5687
           

 

"B" TABLE

 

NO ID NAME AGE SEX TEL
1 id1 하나 35 1234-5678
2 id2 두울 35 8978-5687
3 id3 세엣 45 7987-4544

 

 

위처럼 두개의 테이블이 있는데요

 

"A" table과 "B" table의 ID 가 같은 내용이 있을수도 있고

 

"A" table에없는 데이터가 "B" table에는 있을수 있습니다.

 

이럴때 id1 을 검색을 하면 "A" table의 내용이 검색이 되고

 

id3 을 검색하면 "A" table에는 없으니 "B" table의 내용이 나오도록 하고 싶은데요

 

이럴경우 어떻게 조인을 하여 노출해야하는지 궁금합니다.

 

 

 

결론적으로 두테이블을 조인하여 보여주는데

A table의 내용이 우선적으로 보여주지만 내용이 없을경우 B table 의 내용을 보여주고 싶습니다.

 

그누보드로 제작중입니다.

선배님들 도와주세요...

 

 

이 질문에 댓글 쓰기 :

답변 1

안녕하세여, 지나가던 개발자입니다.

 

계속 지나가겠...이 아니구.

 

테이블 보자마자 드는 생각이, 같은 내용들이 담긴 테이블이 왜 두개인지 궁금했습니다.

 

보통 같은 내용들이 담긴하면 마스터테이블을 두고, 슬레이브 테이블을 두어서 운영을 하는 방법도 있습니다.

 

뭐... 그렇다고 잘못되었다고 말씀드리는게 아니고.. 그냥 갑자기 음? 뭐지? 싶었던게 다구요.

 

그리고 데이터 노출 기준은 A를 기준으로 생각하셔서, 간과하시는 부분이 조인의 기준은 B로 해야 됩니다. 즉,

select * from B left join A 

 

이런식으루요, 그런데 A의 데이터가 있을 경우 A를 출력하시고 싶으시다고 했으니

 

left join 전제 조건에 case when then 문장을 써서, flag를 달으신 후에

 

출력하실때 flag값 유무를 판단하셔서 제어하시면 될 것 같습니다.

 

혹 코드 짜보시고 모르시면 댓글 달아주세요

답변감사합니다.

같은 데이터가 두개인이유는 B테이블은 회원들이 공통으로 사용하는데이터이고 A테이블은 사용자가 B테이블의 내용을 가져와 가공한 데이터입니다.
(가공한 데이터를 공통데이터에 업데이트는 불가합니다.)

사용자가 다시 공통데이터에서 원하는 내용을 검색해서 사용해야하는데
이전에 가공한 데이터가 있다면 그내용을 보여주려합니다.

말씀하신 case when then 문장에 대해서 구글링해보겠습니다.


혹시 실제 코드를 부탁드려도 될까요?

답변을 작성하시기 전에 로그인 해주세요.
전체 23
QA 내용 검색

회원로그인

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