我有一个具有以下结构的表
表名: matches
这基本上存储哪个产品匹配哪个产品.我需要处理这个表并存储在如下的组表中.
表名: groups
group_ID
存储所述MIN Product_ID
的Product_IDS
形成一组.举个例子来说吧
如果A匹配B而B匹配C,那么三行应该以格式分组 (A, A), (A, B), (A, C)
我已经尝试过查看与co-related相关的子查询和CTE,但是没有让它实现.
我需要在SQL中完成所有这些操作.
谢谢您的帮助 .
Ham*_*yan 55
试试这个:
;WITH CTE
AS
(
SELECT DISTINCT
M1.Product_ID Group_ID,
M1.Product_ID
FROM matches M1
LEFT JOIN matches M2
ON M1.Product_Id = M2.matching_Product_Id
WHERE M2.matching_Product_Id IS NULL
UNION ALL
SELECT
C.Group_ID,
M.matching_Product_Id
FROM CTE C
JOIN matches M
ON C.Product_ID = M.Product_ID
)
SELECT * FROM CTE ORDER BY Group_ID
Run Code Online (Sandbox Code Playgroud)
您可以使用它OPTION(MAXRECURSION n)
来控制递归深度.
归档时间: |
|
查看次数: |
92622 次 |
最近记录: |