쿼리 좀 도와주세요^^ 0 3 1,220

by 조민제 [Oracle 기초] 쿼리 [2014.08.22 16:35:05]


안녕하세요 초보 개발자입니다 ㅠㅠ

고수님들의 도움이 필요합니다. 도와주세요^^;

 

3개의 테이블 있습니다.

contents_table

seq title
1  첫번째 개시물

 

 

file_info_table

seq real_file
null null

review_table

seq review
1 good
1 bad

 

이렇게 데이타가 들어가 있습니다.

3개의 테이블이 똑같이 seq = 1 인 값이 1개의 row 씩 있으면 상관없는데

file_info_table, review_table 이 테이블의 값은 있을 수도 있고 없수도 있습니다.

조인을 어떻게 걸어야할지 모르겠습니다.ㅠㅠ

제가 원하는 값은 file_info_table, review_table 이 테이블에 값이 없든 있든 n개가 있든간에

contents_table 에 값이 1개가 있으면 1개만 나왔으면 합니다.

select

a.seq, a.title, b.real_file, count(c.seq) cnt

from contents_table a, file_info_table b, review_table c

....

;

저 위의 값으로 하면 1개의 row 가 나왔으면 합니다 ㅋㅋ

 

 

 

 

 

by 비주류 [2014.08.22 16:40:50]

1개의 row 로 어떤 real_file이 나와야 하나요!?

-- real_file 은 max 로 걍 가정하고...
select a.seq, max(a.title), max(b.real_file), count(c.seq) cnt
from contents_table a, file_info_table b, review_table c
where a.seq = b.seq_id(+)
and a.seq = c.seq(+)
group by a.seq

 


by 조민제 [2014.08.22 16:42:36]

real_file, review 이 테이블에 값이 없을수도 있습니다.


by 마농 [2014.08.25 09:00:04]

1 : M : N 조인입니다.
이 경우 다대다 조인을 그냥 막바로 하면 카티션곱이 발생해서 안되구요.
1을 기준으로 각각 따로 아우터 조인하여 카운트 하는 방식으로 하셔야 합니다.

 

질문이 모호한 부분이 파일의 경우인데요?
파일을 카운트 하는게 아니라 파일명을 조회하네요?
파일이 여러개인 경우 1개의 행에 표현할수는 없겠지요.

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