2012-05-31 1 views
0

테이블이 5 개 있습니다. 기본 테이블은 RisCtx, RisObjRis입니다.Sql 두 개의 다 대다 관계가있는 3 개 테이블을 쿼리하십시오.

RisCtx * ----------- * RisObj
RisObj * ----------- * Ris

(* --- * = 다 - -many)

그래서 더 많은 테이블이 RisCtxRisObjRisObjRis (many-to-many)으로되어 있습니다. 내가 원하는 무엇

Ris 저점 RisObj에 연결되어 RisCtx의 모든 기록을 수집하는 view를 만드는 것입니다.

나는 좀 단서가있어 :(.. 내가 INNER에 대해 뭔가 조인을 읽을 수는 있지만 내가 조금 여유가 표시되지 않습니다 ...

스키마 Db Schema

CREATE VIEW `mydb`.`CtxView_CtxFromObj_ObjFromRisk` AS 
select RisCtx.* 
from RisCtx 
inner join RisCtxRisObj on RisCtx.id=RisObjRisCtx.RisCtx_id 
inner join RisObj on RisObjRisCtx.RisObj_id=RisObj.id 
inner join RisObjRis on RisObj.id=RisObjRis.Objective_id 
inner join Ris on RisObjRis.Risk_id=Ris.id 
+0

스키마를 작성하십시오 – RedFilter

+0

그래, 나는 스키마를 게시하고, 필요하지 않은 것을 삭제했다. 이게 그렇게 될까? (OP의 추가 정보 참조) – Highmastdon

+0

예, 코드가 올바르게 보입니다. – RedFilter

답변

1

당신 이후 스키마를 제공하지 않은, 당신 ON 조항의 모습이 표시 할 수는 없지만 기본 쿼리 구조는 다음과 같습니다.

select RisCtx.* 
from RisCtx 
inner join RisCtxRisObj on ... 
inner join RisObj on ... 
inner join RisObjRis on ... 
inner join Ris on ... 
+0

빠른 답장을 보내 주셔서 감사합니다. 네, 마침내 내게 의미가 있습니다 :). 나는 그것을 시도 할 것이다. 그리고 모든 테이블에는 ID가 있으며 'many-to-many'테이블은 연결된 테이블의 외래 키를 모두 가지고 있습니다. _id – Highmastdon

관련 문제