union all 이후..추가 쿼리를 써야 하나요... 0 2 878

by 킹초보 [SQL Query] [2020.09.13 23:12:45]


 

             
1) union all 을 통해 서로 다른 테이블에서 값을 가져옴.  
             
tbl_code bnm_id bnm_01 bnm_02 bnm_03 bnm_04 datetime
aaa kim 0 4500   4000 2020-9-13 1:01
aaa kim 10000   500 0 2020-9-13 1:01
aaa kim 0 0 100 0 2020-9-13 1:01
bbb kim 0 0 100 0 2020-9-13 1:01
             
2) for문으로 화면에 출력시 아래와 같음생.(위 색상있는 부분만 처리됨)
             
aaa kim 4500 2020-9-13 1:01    
aaa kim 10000 2020-9-14 1:01    
aaa kim 100 2020-9-15 1:01    
bbb kim 100 2020-9-16 1:01    
             
3) 원하는 출력모습(모두 각각 리스트화 시키고자함)    
             
aaa kim bnm_02 4500 2020-9-13 1:01  
aaa kim bnm_02 4000 2020-9-14 1:01  
aaa kim bnm_01 10000 2020-9-15 1:01  
aaa kim bnm_03 500 2020-9-16 1:01  
aaa kim bnm_03 100 2020-9-17 1:01  
bbb kim bnm_03 100 2020-9-18 1:01  
             


서로 다른 테이블을 하나로 묶어서 값을 얻을려고 합니다.

꿈꾸는개발자 질답을 통해 union all 을 이용해서 해결할 수 있었습니다.

근데, 문제가 생겼습니다.

for($i=0; $row=sql_fetch_array($result); $i++) {    

     //table 출력..

}

for문을 통해 값을 테이블로 만드는데..제가 원하는 형태를 얻지 못합니다.

저는 위의 표와 같이 구현 하고자 합니다.

 

union all 이후..추가로 쿼리문을 써야 하나요?

아니면..첨부터 union all 이 아닌 다른방법을 찾아야 하는지요..

 

선생님들 부탁 드려봅니다. ㅜㅜ

 

 

by 마농 [2020.09.14 08:39:14]

이전 질문을 기억해 보면 각 테이블에서 가져오는 컬럼의 수가 달랐던 걸로 기억하는데요.
한번 가공된 중간 결과물로 질문하기 보다는
원본 대비 결과표로 질문해 주시는게 좋습니다.
1차 가공된 결과를 가지고 2차 가공하여 결과를 뽑는 방법을 알려드릴 수도 있지만.
이게 최선이 아닐 수도 있습니다.
중간 가공이 오히려 최종 결과를 뽑는데 방해가 될 수도 있습니다.
원본 테이블 각각에서 어떤 항목들을 어떻게 가져와야 하는지 알려주세요.


by 킹초보 [2020.09.14 15:10:57]

네네. 초기에 검토를 해야 하는거 군요. 
한번더 살펴 보는게 좋을거 같네요. 감사합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입