같은 값을 가진 데이터를 그룹화하여 출력한다.
-- rental 테이블에서 user_id가 같은 데이터끼리 그룹화해서 개수 세기
SELECT user_id, COUNT(*)
FROM rental
GROUP BY user_id;
그룹화한 그룹에 조건을 추가하여 해당 조건에 부합하는 데이터만을 출력한다.
-- rental 테이블에서 user_id로 그룹화한 데이터 중 개수가 1개 초과인 데이터를 검색
SELECT user_id, COUNT(*)
FROM rental
GROUP BY user_id
HAVING COUNT(user_id) > 1;
ON은 어떻게 조인할 것인지 조건을 의미. 조건이 없다면 A와 B의 합집합이 출력된다. 즉 중복은 고려되지 않는다.
-- rental 테이블과 user 테이블을 조회
SELECT *
FROM rental
INNER JOIN user
A와 B가 겹치는 부분이 있을 때에만 조회가 가능하다. A나 B의 해당 컬럼에 NULL값이 있다면 조회 x
또한 JOIN으로만 사용해도 무방하다. JOIN은 INNER JOIN과 같은 의미다.
-- rental 테이블과 user 테이블 중 id가 같은 것끼리 연결한 테이블을 조회
SELECT *
FROM rental
INNER JOIN user
ON user.id = rental.user_id;
A에는 있지만 B에는 NULL값인 데이터도 조회가 가능하다. A테이블 기준으로 조회된다.