现在有一张数据表,叫“入库单”,里面有A,B两个字段,A作为产品,B作为A所使用的材料,同时,B中的材料数据也可以作为A中的产品数据,再次耗用B中的材料,要求通过SQL语句展示出A产品所耗用的B材料,循环查询出所有的可能消耗的材料,并找最终可能产品和消耗的材料相同的数据
时间: 2024-04-23 08:21:55 浏览: 59
材料入库单
这个问题可以通过递归查询来解决。以下是示例SQL语句:
WITH RECURSIVE CTE AS (
SELECT a.A AS Product, a.B AS Material
FROM 入库单 a
WHERE NOT EXISTS (
SELECT 1
FROM 入库单 b
WHERE b.B = a.A
)
UNION ALL
SELECT c.Product, i.B AS Material
FROM CTE c
JOIN 入库单 i ON i.A = c.Material
)
SELECT *
FROM CTE
WHERE Product = Material;
这个语句会递归地查询出所有可能的产品和材料的组合,并找出最终产品和材料相同的数据。注意,在实际使用时,可能需要根据具体的数据表结构和需求进行适当的修改。
阅读全文