2017-09-08 2 views
0

내 테이블 스키마는 id 필드, 이름 필드 및 친구 ID 필드입니다.Laravel where 절로 무작위 사용자 가져 오기

모든 사용자는 최대 2 명의 친구가 있어야합니다. 새 사용자가 생성되고 이벤트가 시작되면 생성 된 사용자 이벤트를 수신하는 리스너가 새로 생성 된 사용자에게 임의의 친구를 추가합니다.

$randomfriend = DB::table('users')->select('id') 
            ->groupBy('friends_id') 
            ->havingRAW('COUNT(*) < 2') 
            ->inRandomOrder()->first(); 

는 여전히 친구의 최대 개수를 사용자에게 반환합니다. 누군가 이걸로 나를 도울 수 있습니까?

+0

groupby를 삭제 하시겠습니까? –

+1

plRs 'dd (DB :: table ('users ') -> select ('id ') -> groupBy ('friends_id ') -> havingRAW ('COUNT (*) <2 ') -> inRandomOrder() -> toSql());'출력을 출력하여 쿼리를 볼 수 있습니다. – mimo

+1

친구 관계를 어떻게 저장하고 있습니까? –

답변

1

먼저 친구 관계를위한 다른 테이블을 만듭니다. 임의의 사용자가 선택하는이 게시물에 당신을 도울 수 있습니다 enter link description here

이 검사에 while 루프에서이 코드를 삽입하는 것을 잊지 마세요.

+0

답변을 주셔서 감사하지만 단일 테이블을 사용하는 것이 좋습니다. 이 답변에서 –

+0

은 두 테이블을 사용하지 않아도됩니다. 이 접근법을 코드에 사용할 수 있습니다. – Amin

관련 문제