개발자
안녕하세요, 스타트업에서 일하고 있는 주니어 PM입니다. SQL에 대해 거의 모르고 입사했는데, 막상 입사해 보니 DB에서 데이터를 뽑아볼 일이 생각보다 많아서 어려움을 겪고 있어요 ㅠㅠ 생초보라 답답하실 수 있겠지만 질문 올려 봅니다. 1번 테이블에는 게시글의 id와 제목 정보가 있고, 2번 테이블에는 게시글에 달린 댓글의 id와 내용이 하나씩 쌓이고 있습니다. 제가 알고 싶은 정보는 게시글들의 댓글 개수인데요, 그래서 1번 테이블에 2번 테이블을 outer join하고, 1번 테이블의 id 기준으로 group by 하여 Count(2번테이블.id)를 뽑아내는 방식으로 개수를 세고 있습니다. 그런데 특정 id를 가진 게시글의 댓글 개수를 세고 싶어서 where 1번테이블.id in (~~~~) 줄을 추가했는데 아래와 같은 오류가 뜹니다. 2번 테이블에 있는 속성으로 바꿔 봐도 동일하고요. 오류 없이 특정 id를 가진 게시글만 뽑아 보려면 어떻게 해야 할까요? 그리고 위의 방식에서는 왜 오류가 발생하는 걸까요?? 오류: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE a.id in (~~~)' at line 7
답변 1
인기 답변
삭제된 사용자
2023년 03월 06일
select a.id -- 글 id , count(b.id) -- table b 의 fk 의 수 from(select a.id , a.title , b.id -- table a 와의 FK 값 from table as a left outer join table b on a.id = b.id ) as a where a.id = {id} group by a.id; 모바일로 쓰려니 힘들 군요 ... 데이터 분석 해야 정확한 계산이 되겠지만 ,,, 요런 느낌으로 짜면 될거 같아용~
DKNY김구워용🐳
투어마케팅코리아 IT 기획팀 팀장 • 2023년 03월 07일
where 절이 그룹바이 보다 앞에 나와야 합니다.
익명
작성자
2023년 03월 07일
수정 완료 했어용!!!
익명
작성자
2023년 03월 08일
남겨주신 방법대로 쿼리 잘 사용했습니다! 너무 감사해요 ㅠㅠ
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!