SQL

[MY SQL] JOIN과 UNION

monawa 2023. 2. 7.
728x90

JOIN

  • JOIN은 두 개의 테이블을 서로 묶어서 데이터를 검색하는 방법을 말한다.
    • 연결하기 위해서는 테이블이 적어도 하나의 컬럼을 공유해야한다 

출처 : https://lyk00331.tistory.com/107

INNER JOIN(내부 조인)

 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다.

  • 교집합

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

 * INNER JOIN을 JOIN이라고만 써도 INNER JOIN으로 인식합니다.
 
 -------------------------------------------------------------
 
  SELECT <열 목록>
 FROM <첫 번째 테이블> , <두 번째 테이블>
  
 WHERE 
 	조인될 조건 AND
    검색 조건
# "," = JOIN  / ON에 쓸 조인 조건을 WHERE 에 써서 더짧게 작성 가능

OUTER JOIN(외부 조인)

두 테이블을 조인할 때, 1개의 테이블에만 데이터가 있어도 결과가 나온다.

  • 합집합(MYSQL에서는 LEFT JOIN + RIGHT JOIN)
 SELECT <열 목록>
 FROM <첫 번째 테이블(LEFT 테이블)>
          <LEFT | RIGHT | FULL> OUTER JOIN <두 번째 테이블(RIGHT 테이블)>
           ON <조인될 조건>
 [WHERE 검색 조건]
  • LEFT OUTER JOIN -  왼쪽 테이블 모든 값 출력 
  • RIGTH OUTER JOIN - 오른쪽 테이블 모든 값 출력 
  • FULL OUTER JOIN - 왼쪽 또는 오른쪽 테이블의 모든값이 출력

LEFT&nbsp;OUTER JOIN&nbsp;-&nbsp; 왼쪽 테이블 모든 값 출력&nbsp;RIGTH&nbsp;OUTER JOIN&nbsp;- 오른쪽 테이블 모든 값 출력&nbsp;FULL OUTER JOIN - 왼쪽 또는 오른쪽 테이블의 모든값이 출력

CROSS JOIN(상호 조인)

  •  한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인하는 기능이다.
  • 상호 조인 결과의 전체 행 개수는 두 테이블의 각 행의 개수를 곱한 수만큼 됩니다.
  • 카티션 곱(CARTESIAN PRODUCT)라고도 합니다.
 SELECT * 
 FROM <첫 번째 테이블>
           CROSS JOIN <두 번째 테이블>



SELF JOIN(자체 조인)

 자신이 자신과 조인한다는 의미로, 1개의 테이블을 사용한다.

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

 


UNION

여러 개의 SELECT 문의 결과를 단일 결과 세트로 연결 표현할떄 사용
(합친 결과에서 중복되는 행은 하나만 표시합니다.
=> DISTINCT 키워드를 따로 명시하지 않아도 기본적으로 중복되는 레코드를 제거)

  • UNION 내의 각 SELECT 문은 같은 수의 열을 가져야 한다.
  • 각각 SELECT 문의 열은 또한 동일한 순서로 있어야 한다.
  • 열은 호환되는 데이터 형식을 가져야 한다.
SELECT * FROM A

UNION  (ALL)      

SELECT * FROM B

 

출처 : https://www.devart.com/dbforge/sql/sqlcomplete/union-vs-union-all.html



UNION ALL

 

UNION ALL도 두 SQL 문의 결과를 결합하는데 사용되는 명령이다.

UNION ALL가 UNION과 다른 점은 UNION ALL은 데이터 값이 중복되더라도 조건에 일치하는 데이터를 모두 표시한다.
(= UNION ALL 은 중복을 제거하지 않습니다. => 중복되는 여러 레코드 출력을 원하면 사용)

https://www.devart.com/dbforge/sql/sqlcomplete/union-vs-union-all.html

 SELECT ID, NAME FROM TABLE1 ;

 UNION ALL

 SELECT ID, NAME FROM TABLE2 ;


JOIN 과 UNION 의 차이

https://lyk00331.tistory.com/m/110

  • UNION: 하나의 결과 세트만 나타난다.
  • JOIN: 적어도 하나의 속성이 공통인 두 테이블 속성을 결합하고자 할 때 사용된다. 
JOIN UNION
적어도 하나의 속성이 공통인 두 테이블 속성을 결합하고자 할 때 사용된다.  하나의 결과 세트만 나타난다.
새로운 열로 결합 (수평결합) 새로운 행으로 결합(수직결합)
 두 개의 테이블 결합 시,
첫 번째 테이블의 데이터는
동일한 행의 두 번째 테이블 열과 함께 한 열 세트에 표시
두 개의 테이블 결합 된 경우,
첫번째 테이블의 데이터는 한 행 세트에 있고
두 번째 테이블 데이터는 다른 세트에

JOIN
Union



참고 한곳 

 

 

SQL 기본 문법: JOIN(INNER, OUTER, CROSS, SELF JOIN)

조인은 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것을 말한다. INNER JOIN(내부 조인)은 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야 한다.OUTER JOIN(외부

hongong.hanbit.co.kr

 

 

[MySQL] UNION, JOIN 차이

1. SQL 이란? MySQL, ORACLE 등 데이터베이스에서 데이터를 관리하기 위해 설계된 프로그래밍 언어 2. UNION 2-1. UNION 정의 2개 이상의 쿼리 결과를 단일 결과 세트로 연결한다. UNION ALL: 중복 항목을 포함

lyk00331.tistory.com

 

 

[MYSQL] JOIN과 UNION 문법과 개념 정리

본 게시글은 아래의 글을 필사하였습니다. http://tcpschool.com/mysql/mysql_multipleTable_join 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

okdy.tistory.com

 

 

[SQL]Join VS Union

Join 과 Union 공통점 : 하나 이상의 테이블의 데이터 결합 Join 과 Union 차이점 : 데이터가 결합되는 방식 ex) A테이블 col1 | col2 ----------- A | 1 B | 1 C | 2 C | 2 D | 3 B테이블 col1 | col2 ----------- A | 가 A | 나 B

syujisu.tistory.com

 

728x90

'SQL' 카테고리의 다른 글

sqld rollup,cube ~윈도우함수 (108~127)  (1) 2023.05.30
sql 의 쿼리 실행 순서  (0) 2023.02.21
WHERE,HAVING 의 차이  (0) 2023.02.14
DDL, DML, DCL,TCL  (0) 2023.02.05
SQL 조건문  (0) 2022.10.01

댓글