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

MySQL 하위 쿼리와 함께 EXIST 및 EXIST NOT 연산자를 사용하는 것은 무엇입니까?


EXIST 연산자는 하위 쿼리의 결과 집합에 행이 있는지 테스트합니다. 하위 쿼리 행 값이 발견되면 EXISTS 하위 쿼리는 TRUE이고 FALSE이면 NOT EXISTS 하위 쿼리입니다. 이를 설명하기 위해 다음 데이터가 있는 'Cars', 'Customers' 및 'Reservations' 테이블을 사용하고 있습니다. −

mysql> Select * from Cars;+------+----------------+------+| 아이디 | 이름 | 가격 |+------+--------------+---------+| 1 | 넥사 | 750000 || 2 | 마루티 스위프트 | 450000 || 3 | BMW | 4450000 || 4 | 볼보 | 2250000 || 5 | 알토 | 250000 || 6 | 스코다 | 1250000 || 7 | 도요타 | 2400000 || 8 | 포드 | 1100000 |+------+--------------+------+8행 세트(0.02초)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초) 

다음은 위에서 언급한 테이블을 사용하여 EXIST가 있는 MySQL 하위 쿼리입니다. −

mysql> WHERE EXISTS에서 고객 이름 선택 (SELECT * FROM Reservations WHERE Customers.customer_id =Reservations.customer_id);+---------+| 이름 |+---------+| 라훌 || 야쉬팔 || Gaurav |+---------+3행 세트(0.06초)

위의 쿼리는 예약한 고객의 이름을 제공합니다.

다음은 위에서 언급한 테이블을 사용하여 NOT EXIST가 있는 MySQL 하위 쿼리입니다. −

mysql> 존재하지 않는 고객의 이름 선택 (SELECT * FROM Reservations WHERE Customers.customer_id =Reservations.customer_id);+----------+| 이름 |+----------+| Virender |+----------+1 행 세트(0.04초)

위의 쿼리는 예약을 하지 않은 고객의 이름을 제공합니다.