mysql 쿼리를 통해 원하는 결과값을 조회화던 중 특정 컬럼에 중복을 제거하고 싶었다.
보통 GROUP BY, distinct를 이용해 제거하지만 내가 원하는 것은 특정 컬럼은 중복을 허용, 특정 컬럼은 중복을 허용하지않는다. 매우 까다롭다.
count(s.storeIdx) as `저장한 식당` , count(r.reviewIdx) as `작성한 리뷰`
식당 1개당 여러개의 리뷰를 작성할 수 있다.
그래서 식당은 중복을 허용하면안되고, 리뷰는 중복이 허용된다.
위의 사진은 식당과 리뷰가 둘 다 중복이 허용된 상태로 나온 결과값이다.
이럴 경우 어떻게 할까?
count(distinct s.storeIdx) as `저장한 식당` , count(r.reviewIdx) as `작성한 리뷰`
바로, 중복을 허용하지 않는 컬럼에 distinct를 적용시키면 원하는 결과 값을 얻을 수 있다.