으로 나는 두 사용자간에 메시지를 저장하는 테이블라는 의견이 있고, 테이블 구조는 다음과 같습니다 : 만 사이의 최신 메시지를 표시 할 데이터를 조회 할그룹 메시지는 최신 응답
id | from_id | to_id | comment | date
두 당사자. 나는 그것을 전에 보았다.
MYSQL을 사용하고 있습니다.
으로 나는 두 사용자간에 메시지를 저장하는 테이블라는 의견이 있고, 테이블 구조는 다음과 같습니다 : 만 사이의 최신 메시지를 표시 할 데이터를 조회 할그룹 메시지는 최신 응답
id | from_id | to_id | comment | date
두 당사자. 나는 그것을 전에 보았다.
MYSQL을 사용하고 있습니다.
두 명의 사용자 ID 번호는 1
및 2
입니다. 당신이 정말로 학자가되고 싶었 경우
SELECT comment
FROM COMMENTS
WHERE (from_id = 1 OR from_id = 2)
AND (to_id = 1 OR to_id = 2)
ORDER BY date DESC
LIMIT 1;
, 당신은 where 절에이를 추가 할 수
AND NOT (from_id = to_id)
들이 나타나 자신에게 메시지를 보낼 경우를 방지 할 수 있습니다. 이것은 사용자가 시스템에서 자신에게 메시지를 보낼 수 있다고 가정합니다. 사용자의 경우 1
: 사용자 2의
SELECT comment
FROM COMMENTS
WHERE (from_id = 2 AND to_id = 1)
ORDER BY date DESC
LIMIT 0,1;
:
SELECT comment
FROM COMMENTS
WHERE (from_id = 1 AND to_id = 2)
ORDER BY date DESC
LIMIT 0,1;
절이는 메시지가 상대방과 그에게 두 당사자 중 하나에서 전송을 보장 할 필요가 "여기서" 그 반대의 경우에만 해당 사용자에게 메시지를 표시합니다. 다음 두 사용자에
는 두 가지의에서 최신 메시지를 표시 할 필요가있는 경우
: MySQL 용 'LIMIT 1'에SELECT comment
FROM COMMENTS
WHERE (from_id = 1 OR from_id = 2)
ORDER BY date DESC
LIMIT 0,1;
하나의 사용자와 관련된 최신 메시지를 모두 선택하고 마지막으로 수신 또는 전송 한 메시지를 그룹화 할 수 있습니다. 예는 Google 이메일입니다. – numerical25
예, "LIMIT 0,1"비트를 제거하고 적용 할 사용자 필터로 필터링하십시오. – ShaunOReilly
변경 'TOP 1'. –
@ypercube 좋은 얼룩. 나는 세미콜론도 잊었다. 젠장, MS SQL Server가 내 머리를 썩어. –
만약 내가 오직 1과 관련된 모든 코멘트를 질의하고 싶다면 반드시 2는 아닐 것입니다. 각 그룹의 최신 메시지로 그룹화 하시겠습니까? – numerical25