Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

행을 반환하지 않는 하위 쿼리와 함께 EXISTS 연산자를 사용하는 경우 MySQL은 어떻게 평가합니까?


EXIST 연산자와 함께 사용되는 하위 쿼리가 행을 반환하지 않으면 EXIST 표현식은 FALSE를 반환하고 MySQL은 빈 집합을 출력으로 반환합니다. 'Customers' −

테이블의 다음 데이터를 사용하는 간단한 예의 도움으로 이해할 수 있습니다.
mysql> 고객에서 * 선택;+-------------+---------+| 고객 ID | 이름 |+-------------+----------+| 1 | 라훌 || 2 | 야쉬팔 || 3 | 가우라프 || 4 | Virender |+-------------+----------+4행 세트(0.00초)mysql> 예약에서 * 선택;+------ +-------------+------------+| 아이디 | 고객 아이디 | 일 |+--------+-------------+------------+| 1 | 1 | 2017-12-30 || 2 | 2 | 2017-12-28 || 3 | 2 | 2017-12-29 || 4 | 1 | 2017-12-25 || 5 | 3 | 2017-12-26 |+------+-------------+------------+5행 세트(0.00초) 

아래 MySQL 쿼리에는 행을 반환하지 않는 EXIST 연산자가 있는 하위 쿼리가 있습니다. 이 경우 EXIST 표현식은 FALSE를 반환하므로 결과 집합은 빈 집합입니다.

mysql> Select Name from Customers WHERE EXISTS (SELECT * FROM Reservations WHERE customer_id =4);빈 세트(0.00초)