>  Q&A  >  본문

누군가가 팔로우하고 해당 사람을 팔로우하는 사용자를 가져오는 SQL 쿼리

사용자 X를 팔로우하고 있고 사용자 X가 해당 사용자를 팔로우하고 있는 사용자를 찾고 싶은 시나리오가 있습니다.

아래 아키텍처를 확인하세요: 테스트 값이 포함된 데이터베이스 테이블 ​​

follower_id와 follow_id가 있습니다. 이제 ID 23을 가진 사용자가 누군가를 팔로우하고 있고 그들도 그를 팔로우하고 있는지 확인하고 싶다고 가정해 보겠습니다.

보시다시피, 사용자 22는 사용자 23을 팔로우하고 있습니다. 그래서 우리는 사용자 테이블에서 이름, 이메일과 같은 사용자 22의 세부 정보를 가져오고 싶습니다.

사용자 23은 24를 팔로우하지만 사용자 24는 사용자 23을 팔로우하지 않으므로 목록에 사용자 24를 포함하지 않습니다.

위 시나리오에 대한 사용자 목록을 가져오는 쿼리를 작성하는 데 도움을 주세요. 감사합니다

업데이트

사용자에 대한 추가 정보가 필요하기 때문입니다. 저는 현재 Laravel에서 느린 솔루션을 구현하고 있습니다.

$UsersIAmFollowing = UserFollowing::where('follower_id', $user->id)->get();
        $UsersFollowingMe = UserFollowing::where('following_id', $user->id)->get();
        $friends = [];
        foreach ($UsersIAmFollowing as $userIamFollowing) {
            foreach ($UsersFollowingMe as $userFollowingMe) {
                if($userIamFollowing->following_id == $userFollowingMe->follower_id){
                    array_push($friends, User::find($userIamFollowing->following_id));
                }
            }
        }

        dd($friends);

P粉562845941P粉562845941203일 전300

모든 응답(1)나는 대답할 것이다

  • P粉356128676

    P粉3561286762024-03-30 15:18:57

    으아악

    id follow_id Following_id
    7 22 23
    6 23 22

    회신하다
    0
  • 취소회신하다