반응형
3 개의 테이블이 있습니다.
아이디, 이름, 설명
thread_id, forum_id, user_id, 제목, 콘텐츠,보기
post_id, thread_id, author_id, 콘텐츠, 날짜
내가하고 싶은 것은 포럼의 모든 스레드를 가져오고 모든 스레드의 게시물 수를 얻는 것입니다. 그래서 모든 스레드 (WHERE forum_id = whatever)를 얻은 다음 결과를 계산하기 위해 테이블 게시물과 함께 참여했습니다. 그러나 뭔가가 작동하지 않습니다. 내 질문은 다음과 같습니다.
SELECT t.*, u.nick, COUNT(p.post_id) AS postcount
FROM
threads t
LEFT JOIN
users u
ON
u.id = t.user_id
LEFT JOIN
posts p
ON
p.thread_id = t.thread_id
WHERE
t.forum_id = $this->forumID
이 쿼리는 게시물이있는 스레드 만 표시합니다. 또한 GROUP BY 문을 사용해 보았지만 MySQL 오류가 발생합니다.
어떻게 해결할 수 있습니까?
----------- 수정 : GROUP BY t.thread_id를 추가하려고 시도했지만 이전에 말했듯이 MySQL 오류 :
SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 설명서에서 15 행의 'WHERE t.forum_id = 2'근처에서 사용할 올바른 구문을 확인하십시오.
전체 쿼리 :
SELECT t.*, u.nick, COUNT(p.post_id) AS postcount
FROM
threads t
LEFT JOIN
users u
ON
u.id = t.user_id
LEFT JOIN
posts p
ON
p.thread_id = t.thread_id
GROUP BY
t.thread_id
WHERE
t.forum_id = $this->forumID
편집 2 :
내 잘못은 GROUP BY 문을 의도하지 않은 곳에 넣었습니다. 이제 해결되었습니다.
해결 방법
GROUP BY가 올바른 방법이므로 다음을 추가하십시오. GROUP BY t.thread_id
참조 페이지 https://stackoverflow.com/questions/4175028
반응형
'MySql' 카테고리의 다른 글
MySQL JAVA에서 MySQL 연결을 만드는 방법 (0) | 2020.10.29 |
---|---|
MySQL Sequelize-대소 문자를 구분하지 않음 (0) | 2020.10.29 |
MySQL mysql_real_escape_string이 나를 위해 작동하지 않습니다. (0) | 2020.10.29 |
MySQL How to add reference to assembly in visual studio mac? (0) | 2020.10.29 |
MySQL-Datetime 필드의 기본값 제거 (0) | 2020.10.29 |
댓글