본문 바로가기
MySql

MySQL IN 및 하위 쿼리를 사용한 MYSQL 업데이트

by 베이스 공부 2020. 11. 21.
반응형

안녕하세요 저는 다음과 같은 테이블이 있습니다.

테이블 항목 :

아이디 | total_comments
_____________________
1 | 0
2 | 0
3 | 0
4 | 0

테이블 설명 :

아이디 | eid | 댓글
_____________________
1 | 1 | comment sdfd
2 | 1 | testing testing
3 | 1 | comment text
4 | 2 | dummy comment
5 | 2 | sample comment
6 | 1 | fg fgh dfh

내가 쓰는 쿼리 :

UPDATE entry 
   SET total_comments = total_comments + 1 
 WHERE id IN ( SELECT eid 
                 FROM comments 
                WHERE id IN (1,2,3,4,5,6))

내가 얻은 결과 :

테이블 항목 :

아이디 | total_comments
_____________________
1 | 1
2 | 1
3 | 0
4 | 0

예상 결과 :

테이블 항목 :

아이디 | total_comments
_____________________
1 | 4
2 | 2
3 | 0
4 | 0

도움을 주시면 감사하겠습니다.

 

해결 방법

 

사용하다:

UPDATE entry 
   SET total_comments = (SELECT COUNT(*)
                           FROM COMMENTS c
                          WHERE c.eid = id
                       GROUP BY c.eid)
 WHERE id IN ( SELECT eid 
                 FROM comments 
                WHERE id IN (1,2,3,4,5,6))

 

참조 페이지 https://stackoverflow.com/questions/2993110

 

 

반응형

댓글