테이블에 존재하는 데이터의 개수를 가져오고 싶을 때 사용한다.
SELECT count(*) FROM likes WHERE liked_book_id = books.id FROM books
AS는 서브쿼리를 사용할 때, 긴 서브쿼리 문을 쿼리문 내에서 이름을 지정하여 짧게 사용하기 위해 사용한다.
(SELECT count(*) FROM likes WHERE liked_book_id = books.id) AS likes
서브쿼리란? 하나의 sql문 안에 포함되어 있는 또 다른 sql문을 나타낸다.
메인쿼리 안에 종속되어 사용된다.
SELECT *,
(SELECT count(*) FROM likes WHERE liked_book_id = books.id) AS likes
FROM books
서브쿼리는 SELECT, FROM, WHERE, HAVING, ORDER BY, VALUES, SET 등에서 사용이 가능하다.
EXISTS는 서브쿼리에 데이터가 존재하는지 여부를 판단하여, 존재하면 TRUE(1)를 존재하지 않으면 FALSE(0)를 반환한다.
SELECT EXISTS (SELECT * FROM likes WHERE user_id = 1 AND liked_book_id=1)