Loading...
MySQL 9.5 Reference Manual 9.5의 15.2.4 EXCEPT Clause의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
1query_expression_body EXCEPT [ALL | DISTINCT] query_expression_body 2 [EXCEPT [ALL | DISTINCT] query_expression_body] 3 [...] 4 5query_expression_body: 6 See Section 15.2.14, “Set Operations with UNION, INTERSECT, and EXCEPT”
EXCEPT는 첫 번째 쿼리 블록의 결과를 두 번째 쿼리 블록에서 (또) 찾을 수 없는 행들로 제한합니다. UNION 및
INTERSECT와 마찬가지로, 각 쿼리 블록은 SELECT,
TABLE, 또는
VALUES를 사용할 수 있습니다. Section 15.2.8, “INTERSECT Clause”에서 정의한 테이블
a, b, c를 사용하는 예는 다음과 같습니다:
1mysql> TABLE a EXCEPT TABLE b; 2+------+------+ 3| m | n | 4+------+------+ 5| 2 | 3 | 6+------+------+ 71 row in set (0.00 sec) 8 9mysql> TABLE a EXCEPT TABLE c; 10+------+------+ 11| m | n | 12+------+------+ 13| 1 | 2 | 14| 2 | 3 | 15+------+------+ 162 rows in set (0.00 sec) 17 18mysql> TABLE b EXCEPT TABLE c; 19+------+------+ 20| m | n | 21+------+------+ 22| 1 | 2 | 23+------+------+ 241 row in set (0.00 sec)
UNION 및
INTERSECT와 마찬가지로,
DISTINCT와 ALL 중 어느 것도 지정되지 않으면 기본값은 DISTINCT입니다.
DISTINCT는 다음 예와 같이 관계의 양쪽에서 발견되는 중복을 제거합니다:
1mysql> TABLE c EXCEPT DISTINCT TABLE a; 2+------+------+ 3| m | n | 4+------+------+ 5| 1 | 3 | 6+------+------+ 71 row in set (0.00 sec) 8 9mysql> TABLE c EXCEPT ALL TABLE a; 10+------+------+ 11| m | n | 12+------+------+ 13| 1 | 3 | 14| 1 | 3 | 15+------+------+ 162 rows in set (0.00 sec)
(첫 번째 statement는 TABLE c EXCEPT TABLE a와 동일한 효과를 가집니다.)
UNION 또는 INTERSECT와는 달리,
EXCEPT는 가환적이지 않습니다. 즉, 다음 예와 같이 결과는 피연산자의 순서에 따라 달라집니다:
1mysql> TABLE a EXCEPT TABLE c; 2+------+------+ 3| m | n | 4+------+------+ 5| 1 | 2 | 6| 2 | 3 | 7+------+------+ 82 rows in set (0.00 sec) 9 10mysql> TABLE c EXCEPT TABLE a; 11+------+------+ 12| m | n | 13+------+------+ 14| 1 | 3 | 15+------+------+ 161 row in set (0.00 sec)
UNION과 마찬가지로, 비교되는 결과 집합은 동일한 개수의 컬럼을 가져야 합니다. 결과 집합 컬럼 타입 역시 UNION과 동일한 방식으로 결정됩니다.
15.2.3 DO Statement
15.2.5 HANDLER Statement