YS's develop story
MySQL ) left outer join 활용, ifnull 활용 본문
MySQL ) left outer join 활용, ifnull 활용
아래와 같이 Restaurant라는 테이블이 있습니다.
또한 아래와 같이 Review라는 테이블이 있습니다.
아래와 같은 쿼리를 실행하면 각 식당의 리뷰수가 몇 개 인지 출력할 수 있습니다.
select restaurantName,reviewCount from Restaurant
inner join (select restaurantId, count(*) as reviewCount from Review group by restaurantId)
ReviewCount on Restaurant.restaurantId = ReviewCount.restaurantId
리뷰수 가 0개인 식당도 같이 출력하게 하려면 null 값도 표시 하는 left outer join을 활용하면 됩니다.
select restaurantName,reviewCount from Restaurant
left outer join (select restaurantId, count(*) as reviewCount from Review group by restaurantId) ReviewCount
on Restaurant.restaurantId = ReviewCount.restaurantId
이때 null 값을 0으로 하려면 아래와 같이 쿼리를 작성하면 됩니다.
select restaurantName,ifnull(reviewCount, 0) reviewCount from Restaurant
left outer join (select restaurantId, count(*) as reviewCount from Review group by restaurantId) ReviewCount
on Restaurant.restaurantId = ReviewCount.restaurantId
'Database > MySQL' 카테고리의 다른 글
MySQL ) LIMIT을 활용하여 페이징 쿼리 구현하기 (2) | 2021.02.13 |
---|---|
MySQL ) 변수에 값을 할당하여 값 마다 다르게 정렬하는 쿼리 짜기 (0) | 2021.02.12 |
MySQL ) 기존 컬럼에서 값을 +1 해주기 (1) | 2021.02.10 |
MySQL 에러 ) Server returns invalid timezone. Need to set 'serverTimezone' property. (1) | 2021.02.08 |
MySQL ) DATE, DATETIME, TIME, TIMESTAMP 차이 (0) | 2021.02.03 |
Comments