我有三个表,我想从第一个表中选择两个列,从最后一个表中选择一个在asp.net的gridview中显示
所以我有一张桌子Sprint,Task和Blocked。
我想从被阻止的表中显示CurrentStatus,为此我需要使用Task表将它们连接在一起。我尝试了下面的查询,但它不起作用。
任何人都可以帮助我,我们将不胜感激。
由于
答案 0 :(得分:1)
你现在正在这样做,你正在做
基本上,你需要INNER JOIN任务并首先阻止,然后 RIGHT JOIN到Sprint(获得所有Sprint):
SELECT tblSprint.sprintID, tblSprint.projectID, tblBlocked.CurrentStatus
FROM tblTask
INNER JOIN tblBlocked ON tblTask.taskID = tblBlocked.taskID
RIGHT JOIN tblSprint ON tblTask.sprintID = tblSprint.sprintID
或者,如果您更容易理解,可以这样写:您将Sprint加入已合并的任务阻止数据。
SELECT tblSprint.sprintID, tblSprint.projectID, tblBlocked.CurrentStatus
FROM tblSprint LEFT JOIN (tblTask INNER JOIN tblBlocked
ON tblTask.taskID = tblBlocked.taskID)
ON tblSprint.sprintID = tblTask.sprintID
答案 1 :(得分:0)
RPM很好。我刚测试过,你需要两个LEFT JOIN
s。
答案 2 :(得分:0)
我想我只是在展示RPM1984和乔丹在这里说的话,我认为它们是正确的:
试试这个:
SELECT tblSprint.sprintID, tblSprint.projectID, tblBlocked.CurrentStatus
FROM tblSprint
LEFT JOIN tblTask ON tblSprint.sprintID = tblTask.sprintID
LEFT JOIN tblBlocked ON tblBlocked.taskID = tblTask.taskID