我有5张桌子。主要表格为:RisCtx
,RisObj
和Ris
。
RisCtx
* ----------- * RisObj
RisObj
* ----------- * Ris
(* --- * =多对多)
所以我又增加了2个表:RisCtxRisObj
和RisObjRis
(对于多对多)。
我想要的是创建一个view
来收集RisCtx
与Ris
通过RisObj
有关联的所有记录。
我有点不知道:(我读过一些关于INNER JOIN的内容,但我没有看到一点清关......
架构
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 :(得分:1)
由于您尚未提供架构,我无法向您展示您的ON
子句应该是什么样子,但基本的查询结构是:
select RisCtx.*
from RisCtx
inner join RisCtxRisObj on ...
inner join RisObj on ...
inner join RisObjRis on ...
inner join Ris on ...