--Q. 가장 비싼 도서의 이름을 검색하시오
-- 강의
SELECT * FROM BOOK b1 WHERE b1.PRICE = 35000;
SELECT MAX(PRICE) FROM BOOK;
--> 합치기
SELECT * FROM BOOK b1 WHERE b1.PRICE = (SELECT MAX(PRICE) FROM BOOK);
--> if) max(price)가 아니라 그냥 price면 스칼라가 아니라 벡터가 나오겠지?
--> 벡터를 비교하고싶으면 in을 쓰면 되겠지!
SELECT * FROM BOOK b1 WHERE b1.PRICE in (SELECT PRICE FROM BOOK);
--Q.도서를 구매한 경험이 있는 고객의 이름을 검색하시오
SELECT * FROM CUSTOMER c
INNER JOIN ORDERS o ON o.CUSTID = c.CUSTID; --> 3) 얘는 custid가 같으면 그냥 모으는거니까 선별하지는 않겠지,...
--> 숫자맞춰서 표만들기에 가깝고
--> CUSTID가 일치하는 고객과 주문 정보를 선택,
--> 한 명의 고객이 여러 주문을 했다면 해당 고객과 관련된 모든 주문이 결과에 포함됨
SELECT * FROM CUSTOMER c --> 2) select돼서 4줄만 나옴
WHERE c.CUSTID IN (SELECT o.CUSTID FROM ORDERS o); --> 1) 이줄에서 1234만 뽑혀나오고
--> 같은 숫자가 있으면 출력하기에 가까운 느낌?
--> 고객 中 주문을 한 고객들만을 선택!
SELECT DISTINCT name FROM CUSTOMER c
INNER JOIN ORDERS o ON o.CUSTID = c.CUSTID;
SELECT c.NAME FROM CUSTOMER c
WHERE c.CUSTID IN (SELECT o.CUSTID FROM ORDERS o);
'DataBase(SQL) > DAY 25 _ 23.09.21' 카테고리의 다른 글
Sub Query2 (0) | 2023.09.21 |
---|---|
Where~in / inner join (0) | 2023.09.21 |
Outer join (0) | 2023.09.21 |
Inner Join (0) | 2023.09.21 |
집계 함수 Quiz (0) | 2023.09.21 |