# UNION

코드 열심히 짜다보면 SELECT 여러개를 사용해야하는 경우가 있습니다.&#x20;

SELECT문을 여러개 쓰면 결과를 각각 다른 탭에 보여줄텐데 이게 싫으면 하나의 결과로 합쳐놓을 수 있습니다.

UNION 문법 쓰면 됩니다.&#x20;

&#x20;INSERT 할 때 만들었던 TEMP, TEMP2 테이블을 사용할 것입니다.

이 두 테이블을 전부 출력하려면

```sql
SELECT * FROM TEMP;
SELECT * FROM TEMP2;
```

이런식으로각각 출력해보면 되지 않겠습니까&#x20;

근데 이러면 결과를 다른 탭으로 출력해줍니다.&#x20;

이게 싫고 결과를 하나로 합치고 싶으면 UNION 문법을 씁시다.

```sql
SELECT * FROM TEMP
UNION
SELECT * FROM TEMP2 
```

이러면 하나의 테이블로 합쳐서 출력해줍니다.

```sql
SELECT * FROM TEMP WHERE ID =1
UNION
SELECT * FROM TEMP WHERE  ID=2
```

같은 테이블 출력결과도 UNION 쓰면 하나로 합쳐줄 수 있습니다.&#x20;

```sql
SELECT id, 상품명 FROM TEMP 
UNION
SELECT id, 상품명, 가격 FROM TEMP2; 
```

&#x20;UNION으로 합치려는 테이블의 컬럼 갯수가 다르면 에러납니다.&#x20;

상식적으로 2열짜리 테이블이랑 3열짜리 테이블을 어떻게 합침

&#x20;컬럼 갯수만 맞추는 게 아니라 데이터 타입까지 동일해야 합니다.&#x20;

(컬럼수만 맞으면 출력되는 DMMS도 있음)

### **UNION ALL 사용법**

UNION으로 합친 결과들은 자동으로 중복을 제거해줍니다.&#x20;

중복제거가 싫고 중복된 행도 냅두고 싶으면 UNION ALL을 사용하면 됩니다.&#x20;

진짜인지는 동일한 자료를 가진 행을 각 테이블에 만들어놓고 UNION, UNION ALL 써봅시다.&#x20;

<figure><img src="https://3814826491-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJyHOwztPxBT3bLpisjCt%2Fuploads%2F3WGtBHvZ67jZ8TvXjZW4%2FScreenshot_49.png?alt=media&#x26;token=1d3d9338-2e47-4a8e-8618-d172d04d1d46" alt=""><figcaption></figcaption></figure>

**Q. JOIN이랑 다른게 뭔가요?**

\- JOIN은 테이블을 양옆으로 붙이고 싶을 때 씁니다.

\- UNION은 테이블을 위아래로 붙이고 싶을 때 씁니다.&#x20;
