我有一个列出公司的表格,以及将这些公司联系在一起形成所有权层级的表格:
dbo.Suppliers:
dbo.SupplierLinks:
我想创建一个存储过程(或函数?),它接受供应商ID,并返回所有链接(直接或间接)供应商的行。
当然,这不会间接地连接供应商:
DECLARE @SupplierId int
SET @SupplierId = 5
SELECT *
FROM Config.SupplierLinks sl
WHERE sl.ParentId = @SupplierId
OR sl.SupplierId = @SupplierId
我该如何做到这一点?
示例:
Supplier 1
|
/ \
2 3
|
/\
5 4
数据:
Id ParentId Name
4 3 'Supplier 4'
5 3 'Supplier 5'
3 1 'Supplier 3'
2 1 'Supplier 2'
*注意:上面的链接表中不存在顶级父级供应商1。
答案 0 :(得分:1)
查看Recursive Queries Using Common Table Expressions
plot "dat1.dat" using 1:2 linetype 1 title "data",\
"dat2.dat" using 1:($2*5) linetype 1 notitle`