为了理解我的需要,这里是我正在使用图表的表:http://pascalc.nougen.com/stuffs/diagram.png
我需要获取项目的属性+所有它的关系,所有这些都是根据相应的关系表'OrderNumber
列列出的。
假设我需要“Project Z”,我想得到:
到目前为止,我所有的尝试都是通过混合排序返回结果。测试用例混合在一个不属于和类似的测试套件中。
我尽量避免使用游标(按照特定的顺序循环每个关系),尝试使用UNION但无法使其工作。
我不会遇到光标问题,但如果存在不需要使用它的解决方案,我当然更喜欢。
由于
答案 0 :(得分:0)
如果你想要一个平坦的结果,你可以从这样的事情开始(未经测试)
select
p.Id,
p.BaseUrl,
ts.*,
tc.*,
ta.*,
pts.OrderNumber as SuitesOrder,
tstc.OrderNumber as CasesOrder,
tcta.OrderNumber as ActionsOrder
from
Projects p
join
ProjectToTestSuites pts
on pts.Projects_Id = p.Id
join
TestSuites ts
on ts.Id = pts.TestSuites_Id
join
TestSuitesToTestCases tstc
on tstc.TestSuites_Id = ts.Id
join
TestCases tc
on tc.Id = tstc.TestCases_Id
join
TestCasesToTestActions tcta
on tcta.TestCases_Id = tc.Id
join
TestActions ta
on ta.Id = tcta.TestActions_Id
where
p.Id = @Id
order by
pts.OrderNumber,
tstc.OrderNumber,
tcta.OrderNumber