SQL 멀티 테이블 쿼리의 내외 연결 쿼리 분류 및 하위 쿼리

연결 조회
1. 피리칼 적
#         where   ,           
SELECT p.*,g.* FROM product p,category g;

2.내부 연결
스텔스 내 연결 (스텔스 내 연결 조건은where,on 오류로)
SELECT p.*,g.* FROM product p, category g WHERE p.cno=g.cid;
#SELECT p.*,g.* FROM product p,category g ON p.cno=g.cid;

내부 연결 보이기 (inner는 생략할 수 있고where/on은 모두 실행할 수 있습니다)
SELECT p.*,g.* FROM product p INNER JOIN category g ON p.cno=g.cid;

3. 왼쪽 외부 연결(왼쪽 테이블 기준)
SELECT p.*,g.* FROM product p LEFT OUTER JOIN category g on p.cno=g.cid;

4. 오른쪽 외부 연결(오른쪽 테이블 기준)
SELECT p.*,g.* FROM product p RIGHT OUTER JOIN category g ON p.cno=g.cid;

5. 전체 연결
#ORACLE  FULL JOIN
SELECT p.*,c.* FROM product p FULL JOIN category c ON p.cno=c.cid;
# mysql        UNION
SELECT p.*,g.* FROM product p LEFT OUTER JOIN category g on p.cno=g.cid 
UNION 
SELECT p.*,g.* FROM product p RIGHT OUTER JOIN category g ON p.cno=g.cid;

6.부등접속
#ON         ON
SELECT p.*,g.* FROM product p, category g WHERE p.cno!=g.cid;

7. 자연 연결
#           ,         
SELECT * FROM product p NATURAL JOIN category c;

서브 쿼리
# 1.               
#1.           
SELECT cno FROM product WHERE pname="  mix4";
#2.          
SELECT cname FROM category WHERE cid=
(SELECT cno FROM product WHERE pname="  mix4");

좋은 웹페이지 즐겨찾기