Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.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/7/sql-server/22.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从一个具有联接ID的表中获取数据_Sql_Sql Server_Database - Fatal编程技术网

SQL从一个具有联接ID的表中获取数据

SQL从一个具有联接ID的表中获取数据,sql,sql-server,database,Sql,Sql Server,Database,我有一张表,上面有产品示例。我用一个联合ID将一些产品连接到主产品12。 我想在子选择中显示所有这些产品,除了我当前正在查看的产品 到目前为止,我的方法与此示例类似,但我无法解决我的问题,这将只显示子项目13、14、15 ProductID | JoinedProductID ------------|---------------- 12 | 13 | 12 14 | 12 15 | 12 我正在从头开始尝试,但是

我有一张表,上面有产品示例。我用一个联合ID将一些产品连接到主产品12。 我想在子选择中显示所有这些产品,除了我当前正在查看的产品

到目前为止,我的方法与此示例类似,但我无法解决我的问题,这将只显示子项目13、14、15

ProductID   | JoinedProductID
------------|----------------
12          | 
13          | 12
14          | 12
15          | 12

我正在从头开始尝试,但是你呢

SELECT t1.*<br>
FROM<br>
  Product t1<br>
  INNER JOIN Product t2 ON (t1.joinedProductID = t2.ProductID)<br>
WHERE<br>
  t1.joinedProductID = 12(request from DB)<br> OR <br>
  t2.ProductID = 12(querystring request)

这是子查询吗?或者你所说的“次选择”是什么意思?如果需要,请共享完整的查询。请添加所需输出的示例。仅使用where SomeID SOMEIDFROMWHERITCOMESF连接SQL当前的写入方式意味着第一行Product ID=12将被排除,因为它对于JoinedProductID没有值,这是由于内部连接条件,因为它在where子句中的过滤器之前应用。您是否试图显示ProductId=12和JoinedProductID=12的行?这很有效,非常好!刚刚不得不在WHERE子句中添加这个,其中t2.ProductID=12和t1.PRODUCTID14来自querystring REQUEST,您能提供一个在这个查询中使用coalesce的示例吗Gordon Linoff?@akc42在测试您的解决方案之后,现在出现了一个问题,如果我单击ProductID 13。。。其中t2.ProductID=13 DB不会呈现这些子产品中的任何一个,所有产品都是在ProductID 12上加入的。@GordonLinoff您是对的-我只是在动态地做。Espen S.用COALESCEt1.JoinedProduct、t1.ProductID替换Case语句
SELECT t1.*
FROM Product t1 INNER JOIN Product t2 ON t2.ProductID = CASE WHEN t1.JoinedProduct IS NULL THEN t1.ProductID ELSE t1.JoinedProductID END
WHERE t2.ProductID = 12