집합에 값이 존재하는지 확인하는 연산자
customer_id의 값이 '1'과 '2'인 값 골라내기
SELECT
r.customer_id ,
r.rental_id ,
r.rental_date
FROM
rental r
WHERE
r.customer_id IN (1,2)
ORDER BY
r.return_date DESC;
이렇게 1, 2 만 골라나옴
같은 표현.
SELECT
r.customer_id ,
r.rental_id ,
r.rental_date
FROM
rental r
WHERE
r.customer_id = 1
OR r.customer_id = 2
ORDER BY
r.return_date DESC;
하지만, 가독성과 성능 측면에서 IN이 좋으니 IN을 쓰도록 하자~
customer_id의 값에 '1'과 '2'가 없는 값 골라내기
SELECT
r.customer_id ,
r.rental_id ,
r.rental_date
FROM
rental r
WHERE
r.customer_id
NOT IN (1,2)
ORDER BY
r.return_date DESC;
역시 같은 표현. 풀어쓰면, '1도 아니고' 그리고 '2도 아닌' 값
SELECT
r.customer_id ,
r.rental_id ,
r.rental_date
FROM
rental r
WHERE
r.customer_id <> 1
AND r.customer_id <> 2
ORDER BY
r.return_date DESC;
결과는 이렇게
'return_date'가 5월 27인 고객들의 이름 골라내기
먼저 'rental' 테이블에서 'return_date'가 5월 27일인 고객의 id 를 찾아야하겠지?
SELECT
r.customer_id
FROM
rental r
WHERE
CAST(r.rental_date AS date) = '2005-05-27'
그리고 그 고객 id 를 통해 'customer' 테이블에서 이름과 성을 알아내면 되지.
SELECT
c.first_name ,
c.last_name
FROM
customer c
WHERE
customer_id IN (
SELECT
r2.customer_id
FROM
rental r2
WHERE
CAST(r2.return_date AS date) = '2005-05-27' );
'데이터 분석 > SQL' 카테고리의 다른 글
[SQL 문법] LIKE (0) | 2020.10.31 |
---|---|
[SQL 문법] BETWEEN (0) | 2020.10.31 |
[SQL 문법] FETCH (0) | 2020.10.30 |
[SQL 문법] LIMIT (0) | 2020.10.30 |
DBeaver 단축키 - 자동 줄 정렬 (prettier) (0) | 2020.10.30 |