users テーブルのユーザー ID と user_friend_id 列を格納する friends テーブルがあります。
特定のユーザー ID によって既に追加されている友達を追加できないようにするには、どのようなクエリを作成すればよいですか?
UserId UserFriendId
1 12
1 13
1 15
2 14
2 17
users テーブルのユーザー ID と user_friend_id 列を格納する friends テーブルがあります。
特定のユーザー ID によって既に追加されている友達を追加できないようにするには、どのようなクエリを作成すればよいですか?
UserId UserFriendId
1 12
1 13
1 15
2 14
2 17
insert into friends (userId, userFriendId)
select 1, 12
where not exists (
select 1 from friends where userId = 1 and userFriendId = 12
)
結果 ( totalCount
)の値が 0 より大きい場合、2 人の個人がすでに友達であることを意味します。
SELECT COUNT(*) totalCount
FROM tableName
WHERE (userID = yourID AND UserFriendID = friendID) OR
(userID = friendID AND UserFriendID = yourID)
次のように、3 つのパラメーターを持つストアド プロシージャを作成するだけです。
CREATE PROCEDURE AddUserFriends
@UserID int,
@FriendID int,
@ExcludeUserID int -- the userid you want to exclude adding his friends
AS
BEGIN
INSERT INTO UserFriends(UserID, FriendID)
SELECT @UserID, @FriendID
WHERE @FriendID NOT IN(SELECT FriendID FROM UserFriends WHERE UserID=@ExcludeUserID)
END