Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 简单递归查询_Sql Server_Sql Server 2005_Tsql - Fatal编程技术网

Sql server 简单递归查询

Sql server 简单递归查询,sql-server,sql-server-2005,tsql,Sql Server,Sql Server 2005,Tsql,我有以下两个表(显示的样本数据): 我想获取至少有一个相关生产问题或没有相关生产问题的所有bug 预期输出如下所示(因为这些是至少有一个相关生产问题的bug) 别名是这里的方法 SELECT pri.Type AS 'Primary Type', rel.Type AS 'Related Type' FROM A AS pri INNER JOIN B ON B.ID = pri.ID INNER JOIN A AS rel ON B.RelatedID = rel.ID WHE

我有以下两个表(显示的样本数据):

我想获取至少有一个相关生产问题或没有相关生产问题的所有bug

预期输出如下所示(因为这些是至少有一个相关生产问题的bug)


别名是这里的方法

SELECT pri.Type AS 'Primary Type', rel.Type AS 'Related Type' 
FROM A AS pri 
   INNER JOIN B ON B.ID = pri.ID
   INNER JOIN A AS rel ON B.RelatedID = rel.ID
WHERE pri.Type = 'Bug' AND rel.Type = 'Production Issue;

别名是这里的方法

SELECT pri.Type AS 'Primary Type', rel.Type AS 'Related Type' 
FROM A AS pri 
   INNER JOIN B ON B.ID = pri.ID
   INNER JOIN A AS rel ON B.RelatedID = rel.ID
WHERE pri.Type = 'Bug' AND rel.Type = 'Production Issue;

不太清楚您在寻找什么,可能包括一个预期输出的示例?我将改进您的表是如何连接在一起的,因为现在还不太清楚,什么是相关id,为什么表b的主键是重复的而不是自动递增的?这只是一个连接,它不是递归的。如果您想列举所有直接和间接相关的问题,那将是递归的。为什么省略9?我真的搞不懂你的算法是什么。这三个bug都有一个生产问题和一个其他类型的问题。他们似乎都在同一条船上。这真的不是很清楚。@David,我的错。我想让6对9。相反,我放了7。因此,在上述情况下,输出将有9个。不太清楚您在寻找什么,可能包括一个预期输出的示例?我将改进您的表如何连接在一起,因为现在还不太清楚,什么是相关id,为什么表b的主键重复而不是自动递增?这只是一个连接,它在任何方面都不是递归的。如果您想列举所有直接和间接相关的问题,那将是递归的。为什么省略9?我真的搞不懂你的算法是什么。这三个bug都有一个生产问题和一个其他类型的问题。他们似乎都在同一条船上。这真的不是很清楚。@David,我的错。我想让6对9。相反,我放了7。因此,在上述情况下,输出将有9。
SELECT pri.Type AS 'Primary Type', rel.Type AS 'Related Type' 
FROM A AS pri 
   INNER JOIN B ON B.ID = pri.ID
   INNER JOIN A AS rel ON B.RelatedID = rel.ID
WHERE pri.Type = 'Bug' AND rel.Type = 'Production Issue;