본문 바로가기

DataBase(SQL)/DAY 25 _ 23.09.21

Inner Join

--1)
SELECT * FROM CUSTOMER, ORDERS;
--> orders의 행이 10개인데, 각 customer마다 10개씩 출력됨
--> for를 도는데, 1번일때 10개가 나오고, 나머지9개의 null에는 1번을 넣어버리는구나.


--2)
SELECT * FROM ORDERS o, CUSTOMER c
WHERE o.CUSTID = c.CUSTID;
--> 일단은 custid가 같은애들끼리 묶으면 10개만 딱 나오긴해.


--3) 기본키, 외래키 조합이어야 함
SELECT * FROM ORDERS o, BOOK b 
WHERE o.BOOKID = b.BOOKID;
--> 각 테이블의 primarykey를 찾고, 겹치는걸 엮으면되지뭐


--4) 외래키 외래키 끼리 하는건 의미가 없지?
SELECT * FROM BOOK b , CUSTOMER c ;


--5) 
SELECT
	o.ORDERID, c.NAME , b.BOOKNAME , o.SALEPRICE 
FROM ORDERS o, BOOK b, CUSTOMER c;
WHERE o.BOOKID = b.BOOKID
AND o.custid = c.custid;


-- Q.고객과 고객의 주문에 관한 데이터를 모두 보이시오
SELECT * FROM ORDERS o , CUSTOMER c 
WHERE o.CUSTID = c.CUSTID;
--> oracal join


SELECT * FROM ORDERS o INNER JOIN CUSTOMER c ON o.CUSTID = c.CUSTID;
--> ansi join(표준) --> where대신 on이구만.

--Q.고객과 고객의 주문에 관한 데이터를 고객번호 순으로 정렬하세요

SELECT * FROM ORDERS o
INNER JOIN CUSTOMER c 
ON o.CUSTID  = c.CUSTID
ORDER BY c.CUSTID ASC;


--Q.고객의 이름과 고객이 주문한 도서의 판매가격을 검색하시오

SELECT c.NAME , o.SALEPRICE FROM ORDERS o 
INNER JOIN CUSTOMER c
ON o.CUSTID = c.CUSTID;


--Q. 고객별로 주문한 모든 도서의 총 판매액을 구하고, 고객별로 정렬하시오

SELECT c.name , sum(o.SALEPRICE)FROM ORDERS o 
INNER JOIN CUSTOMER c ON o.CUSTID = c.CUSTID
GROUP BY c.NAME ORDER BY c.NAME ASC ;
--> 동명이인이 없다는 가정하에 맞는 정답 -> 동명이인 예외처리를 해줘야함!!!
--> group에 고객id를 넣으면 예외처리가 되겠찌
SELECT c.name, SUM(o.SALEPRICE), c.CUSTID FROM ORDERS o 
INNER JOIN CUSTOMER c ON o.CUSTID = c.CUSTID
GROUP BY c.NAME, c.CUSTID
ORDER BY c.NAME ASC;


--Q. 고객의 이름과 고객이 주문한 도서의 이름을 구하시오

SELECT c.NAME , b.BOOKNAME FROM CUSTOMER c 
INNER JOIN ORDERS o ON c.CUSTID = o.CUSTID
INNER JOIN BOOK b ON b.BOOKID  = o.BOOKID
ORDER BY c.NAME ;


--Q. 가격이 20000원인 도서를 주문한 고객의 이름과 도서의 이름을 구하시오

SELECT c.NAME , b.BOOKNAME FROM CUSTOMER c 
INNER JOIN ORDERS o ON c.CUSTID = o.CUSTID 
INNER JOIN BOOK b ON b.BOOKID = o.BOOKID
WHERE b.PRICE = 20000;

'DataBase(SQL) > DAY 25 _ 23.09.21' 카테고리의 다른 글

Where~in / inner join  (0) 2023.09.21
Sub Query  (0) 2023.09.21
Outer join  (0) 2023.09.21
집계 함수 Quiz  (0) 2023.09.21
집계 함수 Basic  (0) 2023.09.21