집합

2022. 3. 17. 21:17SQL

합집합

  • [쿼리 A] UNION [쿼리B] 또는 [쿼리 A] UNION ALL [쿼리B] 형식으로 사용함
  • [쿼리 A]와 [쿼리 B]의 결과 값을 합쳐서 보여줌
  • [쿼리 A]와 [쿼리 B]의 결과 값의 개수가 같아야 하며 다를 경우 에러가 발생함
  • ORDER BY는 쿼리 가장 마지막에 작성 가능하고, [쿼리 A]에서 가져온 컬럼으로만 가능

UNION은 동일한 값은 제외하고 보여주며, UNION ALL은 동일한 값도 포함하여 보여줌

교집합

  • MYSQL에는 두 표현이 존재하지 않아 JOIN을 사용해 표현
SELECT [컬럼 이름]
FROM [테이블 A 이름] AS A
INNER JOIN [테이블 B 이름] AS B
ON A.[컬럼1 이름] = B.[컬럼1 이름] AND ... AND A.[컬럼n 이름] = B.[컬럼n 이름];

교집합을 확인 하고 싶은 컬럼은 모두 다 기준으로 두고 합쳐 줘야 함 (단순 INNER JOIN과의 차이점)

차집합

SELECT [컬럼 이름] 
FROM [테이블 A 이름] AS A 
LEFT JOIN [테이블 B 이름] AS B 
ON A.[컬럼1 이름] = B.[컬럼1 이름] AND ... AND A.[컬럼n 이름] = B.[컬럼n 이름] 
WHERE B.[컬럼 이름] IS NULL;

'SQL' 카테고리의 다른 글

GROUP BY, HAVING  (0) 2022.03.17
제약조건 , 권한  (0) 2022.03.17
Index  (0) 2022.03.17
Trigger  (0) 2022.03.17
SQL : Between, In, Limit  (0) 2022.03.17