나는이 테이블이 독특한 조합으로 모든 레코드를 찾기 messages
두 개의 열
sender_id recipient_id
1 2
1 3
1 3
2 1
내가 레코드를 선택하고자하는 등 그 :
- 어느 SENDER_ID 또는 receiver_id = current_user.id
- 다른 필드는 고유해야합니다.
즉 다음 레코드 만 있습니다. 위의 표에서 선택할 수 있습니다.
sender_id recipient_id
1 2
1 3
왜? 보내고받은 메시지를 집계하는 페이 스북과 같은받은 편지함을 만들고 싶기 때문에이 쿼리는 병목 현상입니다. (A) 내로
SELECT DISTINCT sender_id, reciepient_id
FROM messages
WHERE (sender_id = current_user.id or reciepient_id = current_user.id)
와우 ... 그냥 와우 –
완료. http://sqlfiddle.com/#!15/5a39c/5/0 –
@Erwin 가장 최근의 결과를 얻으려면 어떻게 결과를 주문해야합니까? 테이블에는 id 컬럼과 created_at 컬럼이 있는데, 둘 다 정렬에 사용할 수 있습니다. 그러나 어떻게? –