예시 문)
INSERT INTO books (title, author_fname, author_lname, released_year, stock_quantity, pages)
VALUES
('The Namesake', 'Jhumpa', 'Lahiri', 2003, 32, 291),
('Norse Mythology', 'Neil', 'Gaiman',2016, 43, 304),
('American Gods', 'Neil', 'Gaiman', 2001, 12, 465),
('Interpreter of Maladies', 'Jhumpa', 'Lahiri', 1996, 97, 198),
('A Hologram for the King: A Novel', 'Dave', 'Eggers', 2012, 154, 352),
('The Circle', 'Dave', 'Eggers', 2013, 26, 504),
('The Amazing Adventures of Kavalier & Clay', 'Michael', 'Chabon', 2000, 68, 634),
('Just Kids', 'Patti', 'Smith', 2010, 55, 304),
('A Heartbreaking Work of Staggering Genius', 'Dave', 'Eggers', 2001, 104, 437),
('Coraline', 'Neil', 'Gaiman', 2003, 100, 208),
('What We Talk About When We Talk About Love: Stories', 'Raymond', 'Carver', 1981, 23, 176),
("Where I'm Calling From: Selected Stories", 'Raymond', 'Carver', 1989, 12, 526),
('White Noise', 'Don', 'DeLillo', 1985, 49, 320),
('Cannery Row', 'John', 'Steinbeck', 1945, 95, 181),
('Oblivion: Stories', 'David', 'Foster Wallace', 2004, 172, 329),
('Consider the Lobster', 'David', 'Foster Wallace', 2005, 92, 343),
('10% Happier', 'Dan', 'Harris', 2014, 29, 256),
('fake_book', 'Freida', 'Harris', 2001, 287, 428),
('Lincoln In the Bardo', 'George', 'Saunders', 2017, 156, 375);
만약 페이지가 가장 많은 책을 찾고 싶다고 가정했을때!
select max(pages),title from books; <- 이렇게 작성하는 것은 잘못된 sql문입니다.
페이지는 최대값이 나오나 그거에 맞지 않은 책 제목이 나오게 됩니다.
이럴땐 sub query를 사용합니다.
select *
from books
where pages = (select max(pages) from books);
보시면 sql문 where절안에 또 다른 sql문이 있습니다.
'MySQL' 카테고리의 다른 글
MySQL의 날짜와 시간 처리 datetime테이블 설정 및 원하는 연,월,일,요일 출력 (0) | 2021.12.09 |
---|---|
MySQL의 모든 데이터 값을 더하는 sum()함수와 평균을 구하는 avg()함수 (0) | 2021.12.09 |
MySQL 의 최대값 max() 최소값 min() (0) | 2021.12.08 |
MySQL의 그룹화 하여 데이터를 처리하는 group by, 데이터 개수 확인하는 count() 함수 (0) | 2021.12.08 |
MySQL의 검색기능 like 사용 (0) | 2021.12.08 |