SQL:在查询中组合主数据和子数据

时间:2011-10-27 08:59:53

标签: sql sql-server database sql-server-2008

Sql Server 2008中,我尝试使用Jira,我有两个表,我有一些这样的数据;

JIRAISSUE

enter image description here

ISSUELINK

enter image description here

在此示例中,ID = 16554是Main Task。 16555和16556是16554的Sub Tasks。正如您在JIRAISSUE中看到的,主要任务和所有子任务都是一个问题。它们连接在ISSUELINK表格中,SOURCEDESTINATION列。

我尝试写这样的查询,但我失败了。我试着找到这样的结果;

enter image description here

正如你在图片中看到的,我想要的是什么;显示基于所有主要任务及其子任务的一行。

我找不到合适的查询。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

SELECT  j.ID, j.Pkey, j.SUMMARY, j.CREATED,j.UPDATEED, j.RESOLUTIONDATE
        ,j2.SUMMARY, j2.CREATED,j2.UPDATEED, j2.RESOLUTIONDATE
FROM @JIRAISSUE As j
INNER JOIN @ISSUELINK i
    ON i.SOURCE =j.ID
INNER JOIN @JIRAISSUE As j2
    ON i.DISTINATION =j2.ID

答案 1 :(得分:1)

试试这个:

SELECT j.ID, j.Pkey, j.SUMMARY, j.CREATED, j.UPDATED, j.RESOLUTIONDATE 
       ,j2.SUMMARY, j2.CREATED, j2.UPDATED, j2.RESOLUTIONDATE
       ,j3.SUMMARY, j3.CREATED, j3.UPDATED, j3.RESOLUTIONDATE 
FROM Jira.jiraissue As j 
INNER JOIN Jira.issuelink i 
        ON i.SOURCE = j.ID  and i.SEQUENCE = 0
INNER JOIN Jira.jiraissue As j2 
        ON i.DESTINATION = j2.ID
LEFT JOIN Jira.issuelink i2 
        ON i2.SOURCE = j.ID  and i2.SEQUENCE = 1
LEFT JOIN Jira.jiraissue As j3 
        ON i2.DESTINATION = j3.ID

左边加入支持案例,只有一个问题。