2012-05-31 233 views
0

我有5個表。主表是:RisCtx,RisObjRissql查詢2個多對多關係的3個表

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

(* --- * =多到-many)

所以我又有兩個表叫做:RisCtxRisObjRisObjRis(對於多對多)。

我想要的是創建一個view,它收集RisCtx中的所有記錄,它們與RisRisObj有關。

我得有點不知道:(..我看了一些關於內部連接,但我沒有看到一點間隙...

架構 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,'多對多'表具有連接表的兩個外鍵,分別爲 _id – Highmastdon