본문 바로가기
개발일지/SQL

SQL union, union all

by 다니엘의 개발 이야기 2022. 6. 27.
320x100

SQL union, union all을 배우고 있다.

 

내가 간단하게 임의적으로 만들거나, 컬럼자체가 간단한것이라면 딱히 문제가 없겠지만,

그렇지 않을 경우는

 

# 모든것을 불러운다.

select*

라는 명령을 썼을때, union을 희망하는 A테이블의 18개 칼럼과 B테이블의 19개 칼럼처럼

1개라도 칼럼의 숫자가 맞지 않는다면 이런에러가 뜰것이다.

 

ERROR 1222 (21000): The used SELECT statements have a different number of columns

 

따라서 이런 에러를 해결하려면 방법은 2가지다.

# 방법1 테이블 A의 18개 칼럼이 테이블 B 19개 칼럼에 모두 포함되어있는경우.

테이블A에다가 테이블 B에만 있는 칼럼을 추가해준다.

혹은 테이블B에만 있는 칼럼을 삭제해준다.

 

# 방법 2

칼럼이 테이블 A와 테이블 B를 비교했을때 갯수가 같더라도 내용이

A = height, weight, age

B = age, name, address 처럼 1개만 일치한다면

일치하는 1개의 컬럼만

select age from table_name

으로 불러와서 이용해준다.

 

=============================

그 외적으로는

union은 중복배제 출력 합성이고 (중학교때 배운 합집합이라고 보면 된다)

union all은 중복포함 출력 함수이다.

300x250

'개발일지 > SQL' 카테고리의 다른 글

SQL 접근 맥(맥북) 버전, (mysql, AWS)  (0) 2022.06.29
SQL 카테고리 생성!  (0) 2022.06.29
SQL 문장 작성 실수  (0) 2022.06.25
SQL 활용기초2 UPDATE로 테이블 안의 컬럼 값을 변경  (0) 2022.06.25
SQL 활용기초1  (0) 2022.06.25