我在使用 T-SQL 时遇到问题。我是 T-SQL 的初学者。
我有一个朋友条目数据库。一列包含 MemberA_ID,它是一对朋友中朋友的成员 ID 之一的整数 ID。另一列包含MemberB_ID,它是一对朋友中另一个朋友的成员ID的整数ID。
因此,如果 Mary 的 ID 为 1,John 的 ID 为 2,并且他们是朋友,那么 Friends 表中的一行将包含 1 和 2(以及其他数据)。
我正在尝试编写一个 T-SQL 存储过程,它将成员 ID 作为输入,并为该成员的所有朋友检索他们的 memberID 和用户名(用户名存储在另一个名为 MemberProfiles 的表中)。
我正在尝试这段代码,但它没有被接受。
ALTER PROCEDURE dbo.GetFriends (@ownMemberID [int])
AS
DECLARE @localFriendID_A AS INTEGER
DECLARE @localFriendID_B AS INTEGER
IF EXISTS
(
SELECT @localFriendID_B = MemberB_ID
FROM Friends
WHERE (StartDate IS NOT NULL) AND (EndDate IS NULL)
AND (RequestRejectDate IS NULL) AND (MemberA_ID = @ownMemberID)
)
BEGIN
SELECT MemberID, VisibleUsername
FROM MemberProfiles
WHERE (MemberID = @localFriendID_B)
END
ELSE IF EXISTS
(
SELECT @localFriendID_A = MemberA_ID
FROM Friends
WHERE (StartDate IS NOT NULL) AND (EndDate IS NULL)
AND (RequestRejectDate IS NULL) AND (MemberB_ID = @ownMemberID)
)
BEGIN
SELECT MemberID, VisibleUsername
FROM MemberProfiles
WHERE (MemberID = @localFriendID_A)
END
RETURN