我正在编写一个查询,为while循环中的每个项目分配级别代码。我有需要清理数据问题的表。表中的一些记录如下所示:
Product Ingredient
XX YY
YY XX
YY ZZ
ZZ XX
我应该如何使用查询来查找可能导致循环的所有对。感谢。
正如@JuanCarlosOropeza所说。可能有XX-> YY - > ZZ - > XX也发生了。
答案 0 :(得分:0)
听起来你需要递归公用表表达式或CTE。这应该让你开始:https://msdn.microsoft.com/en-us/library/ms186243.aspx。
我会稍后尝试发布一个代码示例,以备不时之需。
答案 1 :(得分:0)
实际上很简单
select * from product p1
inner join product p2 on p1.prod = p2.ingredient
inner join p3 on p3.prod = p2.prod and p1.ingredient = p3. Ingredient
这匹配递归产品(在手机上输入)