읽지 않은 메시지를 가져 오는 SQL 쿼리를 작성했지만 코드 (속도 및 가독성)를 향상시킬 수 있다고 생각합니다. 첫 번째 select는 COUNT 함수 용이고 두 번째 select는 conversation_id에 따라 메시지를 그룹화하기위한 것이고, 마지막 중첩 select는 마지막 메시지를 선택하는 것입니다.이 SQL 쿼리를 다시 작성하십시오
제게 제안 해주세요. 미리 감사드립니다.
SELECT COUNT(*) as unreaded FROM (
SELECT id
FROM (
SELECT id, conversation_id
FROM messages
WHERE to_id = ?
AND readed = 0
and NOT hide_from = ?
ORDER BY sended DESC
) AS temp_messages
GROUP BY conversation_id
) as temp_messages2
의 목록에없는 때문에 16,
GROUP BY
작동하지 않습니다, 또한 "unreaded"하지 않고 "발송에 실패"의 "읽지 않은" "전송". 그것들은 가독성을 향상시킬 것입니다;) –읽지 않은 총 메시지 수만 원하십니까? 아니면'읽지 않은 이드, conversation_id'? 'id'는 무엇입니까? ddl, 샘플 및 예상 출력을 게시하면 더 좋을 것입니다. –