database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 3533 게시물 읽기
No. 3533
조인관련 질문
작성자
초보
작성일
2007-05-30 17:33
조회수
2,049

조인관련 질문입니다.


머리속으로 생각하다가 도저히 답이 나오지 않아 이렇게 질문드립니다.


비디오 정보가 있는 테이블이 있습니다. 비디오에는 해당하는 장르가 있게 마련인데 비디오 한 개당 장르의 관계는 일대 다의 관계를 가지고 있습니다. 즉, 한 비디오 정보에 액션, 호러와 같이 여러개의 장르가 올 수 있다는거죠. 또한 하나의 장르에 여러개의 비디오 정보가 올 수 있습니다. 정형적인 다대다의 관계입니다. 그래서 이것을 해결하기 위해 [비디오장르]라는 테이블을 만듭니다. 배우도 장르와 같은 식으로 생각해보면 [배우] 테이블을 생성할 수 있고, [비디오] 테이블과의 다대다의 관계를 해결하기 위해 [비디오배우] 라는 테이블을 생성합니다. 이런 식으로 하면 감독도 뽑을 수 있겠죠. 하지만 감독은 생략하겠습니다. 너무 복잡해지니까요. ㅡ.ㅡ;


[비디오]

비디오번호

비디오명


[장르]

장르번호

장르명


[비디오장르]

비디오번호

장르번호


[배우]

배우번호

배우명


[비디오배우]

비디오번호

배우명


이해를 하셨나 모르겠네요. ㅠ.ㅠ;


아무튼 위의 정보를 가지고 비디오 하나의 정보를 뽑아온다고 하면 대충 이런 쿼리가 만들어질겁니다.(단, [비디오]의 한 로우 정보에는 반드시 장르와 배우가 있다고 가정)


SELECT [비디오].비디오명, [장르].장르명, [배우].배우명

FROM [비디오]

JOIN [비디오장르] ON [비디오장르].비디오번호=[비디오].비디오번호

JOIN [장르] ON [장르].장르번호=[비디오장르].비디오번호

JOIN [비디오배우] ON [비디오배우].비디오번호=[비디오].비디오번호

JOIN [배우] ON [배우].배우번호=[비디오배우].배우번호

WHERE [비디오].비디오번호=1


이 때 비디오번호가 1의 장르가 2개가 있고 배우가 3개가 있다면 이런 식으로 아마 나올겁니다.


비디오명, 장르1, 배우1

비디오명, 장르1, 배우2

비디오명, 장르1, 배우3

비디오명, 장르2, 배우1

비디오명, 장르2, 배우2

비디오명, 장르2, 배우3


이렇게 여러개의 정보가 있을 때는 조인으로 한 번에 뽑아도 가공하지 않으면 힘들 듯 보이는데요. 정말 이렇게 한 번에 뽑아서 처리하는게 맞는건지 아니면 장르, 배우 정보를 각각 조인해서 처리해야 되는건지 무지 궁금합니다.


고수님들의 답변 부탁드리겠습니다. 그럼, 수고하세요.

[Top]
No.
제목
작성자
작성일
조회
3536DBGuide.net에 SQL 서버 전문가 무료 컨설팅 코너가 생겼습니다.
DBGUIDE.NET
2007-05-31
3091
3535특정컬럼 계산
장수풍뎅이
2007-05-31
2257
3534로그 파일 사이즈 줄이기.. [2]
이덕희
2007-05-31
3448
3533조인관련 질문
초보
2007-05-30
2049
3532MSSQL2005 Express 응답속도 문제
개발자1호
2007-05-30
2572
3531로그 쉬핑 로그복원 오류 해결법좀 갈쳐주세요~~ㅠㅠ
김희영
2007-05-30
2340
3530이후 레코드필드값에서 이전 레코드필드값을 감하기
풍뎅이
2007-05-30
1977
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다