내 기본 사항이 아닌 기본 SQL 문을 넘어선 모든 것.PHP에서 내부 조인이 포함 된 메시지에 대한 응답 수를 표시합니다.
내가 코딩하고있는 메시징 시스템은 페이스 북과 비슷하지만 별도의 메시지 대신 하나의 기본 메시지에 회신하고 참여중인 모든 메시지가 한 자리에 표시됩니다.
메일 테이블 :
- : 메시지
- MAILTO를 보낸 사람을
- mailUnread : 1
- mailBody
- mailCurrency
- mailSubject 읽지입니다
- mailTime
- mailDeleted :
- mailreplyUser을 mailreplyID
- : 사용자
- mailreplyDeleted를 회신 할 것 : 1은 mailreply 테이블에
관련 필드를 삭제 1
- mailreplyTo 삭제 : 응답 한 메시지의 ID
원본 나는 응답 횟수를 세지 않고 잘 작동하도록 코드를 만들었지 만 번호를 포함하는 것이 도움이된다고 결정했습니다.
이
내가 원래 한 것입니다 :SELECT
a.mailID,
a.mailUser,
a.mailTo,
b.username AS usernamea,
c.username AS usernameb
FROM
mail a, users b, users c
WHERE
(a.mailUser = b.id OR a.mailUser = c.id)
AND (a.mailTo = '".$id."' OR a.mailUser = '".$id."')
AND a.mailDeleted = '0'
GROUP BY a.mailID
ORDER BY a.mailID DESC
이 있었다 내 시도 :
SELECT
a.mailID,
a.mailUser,
a.mailTo,
b.username AS usernamea,
c.username AS usernameb
FROM
mail a, users b, users c
LEFT JOIN mailreply d
ON d.mailreplyTo = a.mailID
WHERE
(a.mailUser = b.id OR a.mailUser = c.id)
AND (a.mailTo = '".$id."' OR a.mailUser = '".$id."')
AND a.mailDeleted = '0'
GROUP BY a.mailID
ORDER BY a.mailID DESC
감사
안녕하세요 Rebecca, Welcome to Stack Oveflow! 두 번째 시도가 효과가 있었습니까? 오류나 예기치 않은 결과가 있었습니까? –
슬프게도 없습니다."제공된 인수가 유효한 MySQL 결과 리소스가 아닙니다."오류가 발생합니다. 나는 문제가 무엇인지 모르겠다. 그리고 나는 행운이없는 상황을 바꾸려고 노력하고있다. –
나는이 문제를 해결하는 데 중요하지 않은 것처럼 보이는 열을 쿼리에서 제거 할 자유를 가졌으나 걱정하지 않기를 바란다. 일단 우리가 한 번만 다시 추가 할 수 있어야한다. 이걸 알아 냈어. 또한, 언급 한 오류는 PHP 오류처럼 들린다 ... MySQL 자체에서 오류가 발생 했습니까? –