내부 조인의 기본 ( INNER JOIN)

SELECT <열 목록>
FROM <첫 번째 테이블>
	INNER JOIN <두 번째 테이블>
    ON < 조인될 조건>
[WHERE <검색조건>]
[ORDER BY <기준>]

예시

USE market_db;
SELECT b.mem_id , m.mem_name, b.prod_name, m.addr, CONCAT(m.phone1, m.phone2) '연락처' 
FROM buy b 
INNER JOIN member m  
ON b.mem_id = m.mem_id
ORDER BY m.mem_id;

 

외부조인 (OUTER JOIN)

SELECT [컬럼 이름]
FROM [테이블 A 이름]
LEFT JOIN [테이블 B 이름]
ON [테이블 A 이름].[컬럼 A 이름] = [테이블 B 이름].[컬럼 B 이름] 
UNION --두 쿼리의 결과를 중복을 제외하고 합쳐서 보여주는 집합연산자
SELECT [컬럼 이름]
FROM [테이블 A 이름]
RIGHT JOIN [테이블 B 이름] ON[테이블A이름].[컬럼A이름]=[테이블B이름].[컬럼B이름];
SELECT <열 목록>
FROM <첫 번째 테이블 (LEFT 테이블)>
	<LEFT | RIGHT | FULL> OUTER JOIN <두 번째 테이블(RIGHT 테이블)>
    ON < 조인될 조건>
[WHERE <검색조건>]
[ORDER BY <기준>]
  • LEFT OUTER JOIN ( LEFT JOIN) : 왼쪽 테이블을 기준으로 외부 조인 (왼쪽 테이블의 내용은 모두 출력되어야 한다)
  • FULL OUTER JOIN : 왼쪽이든 오른쪽이든 한쪽에 들어 있는 내용이면 출력

예시

SELECT b.mem_id , m.mem_name, b.prod_name, m.addr
	FROM `member` m 
		LEFT OUTER JOIN buy b 
		ON m.mem_id = b.mem_id 
	WHERE b.prod_name IS NULL 
	ORDER BY m.mem_id ;

 

기타 조인

상호조인 (CROSS JOIN):  한쪽 테이블과 다른 쪽 테이블의 모든 행을 조인 시키는 기능

SELECT *
FROM buy
CROSS JOIN memeber;

자체조인 (SELF JOIN):  자신의 테이블에서 컬럼끼리 조인

SELECT < 열 목록>
FROM <테이블> 별칭1
INNER JOIN <테이블> 별칭2
ON <조인될 조건>
[WHERE 검색 조건]

예시

SELECT A.emp "직원", B.emp "직속상관", B.phone "직속상관연락처"
	FROM emp_talbe A
    	INNER JOIN emp_table B
        ON A.manager = B.emp
    WHERE A.emp = '경리부장';
emp manager phone
대표 NULL 1111
... ... ...

직원 직속상관 직속상관 연락처
경리부장 관리이사 2222

'DataBase > MySQL' 카테고리의 다른 글

MySQL- 테이블 제약조건  (0) 2023.08.26
MySQL - SQL 프로그래밍 (IF, CASE, WHILE, 동적 SQL)  (0) 2023.08.26
MySQL - 데이터 형 변환  (0) 2023.08.04
MySQL - 변수사용  (0) 2023.08.04
MySQL- 데이터 형식  (0) 2023.08.04

+ Recent posts