Xin chào. Tôi có một bảng tham chiếu chính nó và tôi cần để có thể chọn phụ huynh và tất cả các hồ sơ con của nó từ một ID cha cụ thể.Máy chủ SQL: Làm thế nào để có được tất cả các bản ghi con cho một id cha trong một bảng tự tham khảo
bảng của tôi là như sau:
ID | ParentID | Name
-----------------------
1 NULL A
2 1 B-1
3 1 B-2
4 2 C-1
5 2 C-2
Vì vậy, cho ví dụ trên tôi muốn để có thể vượt qua trong một giá trị là 1 và nhận được tất cả các hồ sơ trên.
Cho đến nay, tôi đã đưa ra hàm đệ quy có giá trị theo hàm nhưng nó không hoạt động như mong đợi (chỉ trả lại bản ghi đầu tiên).
CREATE FUNCTION [dbo].[SelectBranches]
(
@id INT
,@parentId INT
)
RETURNS @branchTable TABLE
(
ID INT
,ParentID INT
,Name INT
)
AS
BEGIN
IF @branchId IS NOT NULL BEGIN
INSERT INTO @branchTable
SELECT
ID
,ParentID
,Name
FROM
tblLinkAdvertiserCity
WHERE
ID = @id
END
INSERT INTO @branchTable
SELECT
br.ID
,br.ParentID
,br.Name
FROM
@branchTable b
CROSS APPLY
dbo.SelectBranches(NULL, b.ParentID) br
RETURN
END
GO
+1 để cố gắng tự giải quyết, trước khi đặt câu hỏi tại đây. – iMatoria