删除SQL SELECT中的simetrics元组
我正在使用MS SQL Server 2005 Express。我有表清单,我想检索所有具有相同颜色的产品对,例如 因此,我有以下疑问:删除SQL SELECT中的simetrics元组,sql,tuples,Sql,Tuples,我正在使用MS SQL Server 2005 Express。我有表清单,我想检索所有具有相同颜色的产品对,例如 因此,我有以下疑问: SELECT I1.ProdId,I2,ProdId FROM Inventory AS I1,Inventory AS I2 WHERE I1.Color=I2.Color ORDER BY I1.ProdId 这将返回一些类似于以下内容的内容: ProdId|ProdId ------------- 1 | 2 1 | 3 2
SELECT I1.ProdId,I2,ProdId FROM Inventory AS I1,Inventory AS I2
WHERE I1.Color=I2.Color
ORDER BY I1.ProdId
这将返回一些类似于以下内容的内容:
ProdId|ProdId
-------------
1 | 2
1 | 3
2 | 1
2 | 3
3 | 1
3 | 2
我需要像1-2这样的对称元组,2-1只显示一个元组
有人有主意吗?谢谢 谢谢!您的查询工作不正常,但非常有帮助。我稍微修改了一下,效果很好。最后,它看起来是这样的:从peliculas中选择I1.ProdId、I2.ProdId作为P1,peliculas作为P2,其中P1.idIdiomaOriginal=P2.idIdiomaOriginal和I1.ProdIdI2.ProdId和I1.ProdId
SELECT I1.ProdId,
I2,ProdId
FROM Inventory AS I1,
Inventory AS I2
WHERE I1.Color=I2.Color
AND (
-- here I get the rows without the symmetric
I1.ProdId || '-' || I2,ProdId <> I2.ProdId || '-' || I1,ProdId
OR
(
-- here I get the rows with the symmetric but only with the first id
-- smaller than the second, so excluding 'duplication'
I1.ProdId || '-' || I2,ProdId <> I2.ProdId || '-' || I1,ProdId
AND
I1.ProdId < I2.ProdId
)
)
ORDER BY I1.ProdId