[mariaDB] UNION 연산자 (펌)

2019. 5. 8. 14:33IT-개발/DB

반응형

select 로 생성된 결과 data들을 붙여서 1개로 표현, 중복되도 표현하면 UNION ALL, 아니면 UNION ~

 

 

쉽게 정리된 곳 Link : 

https://zetawiki.com/wiki/SQL_UNION,_UNION_ALL_%EC%97%B0%EC%82%B0%EC%9E%90

 

 

  • SQL 집합 연산자 중 하나
  • 두 SQL 쿼리문의 결과를 합치는 연산자
  • UNION은 중복된 행[1]이 제외됨
  • UNION ALL은 중복된 행이 그대로 있음

2 예시[편집]

  • 실습용 테이블 2개

mysql> SELECT * FROM sales1;

+--------+--------+

| person | amount |

+--------+--------+

| Joe | 1000 |

| Alex | 2000 |

| Bob | 5000 |

+--------+--------+

 

mysql> SELECT * FROM sales2;

+--------+--------+

| person | amount |

+--------+--------+

| Joe | 2000 |

| Alex | 2000 |

| Zach | 35000 |

+--------+--------+

 

 

  • UNION 예시

mysql> SELECT * FROM sales1 UNION SELECT * FROM sales2;

 

+--------+--------+

| person | amount |

+--------+--------+

| Joe | 1000 |

| Alex | 2000 |

| Bob | 5000 |

| Joe | 2000 |

| Zach | 35000 |

+--------+--------+

 

→ 행의 모든 값이 일치하는 (Alex, 2000) 행은 1개만 출력됨→ 일부만 일치하는 행은 따로 출력됨. 예: (Joe, 1000)과 (Joe, 2000)

  • UNION ALL 예시

mysql> SELECT * FROM sales1 UNION ALL SELECT * FROM sales2;

 

+--------+--------+

| person | amount |

+--------+--------+

| Joe | 1000 |

| Alex | 2000 |

| Bob | 5000 |

| Joe | 2000 |

| Alex | 2000 |

| Zach | 35000 |

+--------+--------+

 

→ 모두 출력됨