알 수 없는 발신자 식별: 등록되지 않은 번호에 대한 SQL 기법
이 문서에서는 SQL 쿼리를 사용하여 전화번호부 데이터베이스에 나열되지 않은 전화번호에서 걸려온 전화를 식별하는 방법을 보여줍니다. 이를 달성하기 위한 몇 가지 효율적인 방법을 살펴보겠습니다.
시나리오:
다음 테이블을 고려하세요.
테이블: Phone_book
id | name | phone_number |
---|---|---|
1 | John | 111111111111 |
2 | Jane | 222222222222 |
테이블: Call
id | date | phone_number |
---|---|---|
1 | 0945 | 111111111111 |
2 | 0950 | 222222222222 |
3 | 1045 | 333333333333 |
목표는 에서 아닌Phone_book
번호에서 걸려온 전화를 찾는 것입니다.
SQL 쿼리 솔루션:
아래에는 세 가지 방법이 제시되어 있습니다.
방법 1: NOT IN
하위 쿼리
이 접근 방식은 NOT IN
하위 쿼리를 사용하여 Phone_book
:
<code class="language-sql">SELECT * FROM Call WHERE phone_number NOT IN (SELECT phone_number FROM Phone_book);</code>
방법 2: NOT EXISTS
하위 쿼리
이 대안은 NOT EXISTS
을 사용하여 동일한 결과를 얻습니다. 대규모 데이터 세트의 경우 더 효율적인 것으로 간주되는 경우가 많습니다.
<code class="language-sql">SELECT * FROM Call WHERE NOT EXISTS ( SELECT * FROM Phone_book WHERE Phone_book.phone_number = Call.phone_number );</code>
방법 3: LEFT OUTER JOIN
NULL
확인
이 방법은 LEFT OUTER JOIN
열의 NULL
값을 필터링하고 일치하는 항목이 없는 호출을 식별하는 방법입니다.Phone_book
<code class="language-sql">SELECT * FROM Call LEFT OUTER JOIN Phone_book ON (Call.phone_number = Phone_book.phone_number) WHERE Phone_book.phone_number IS NULL;</code>
예상 결과:
세 가지 쿼리 모두 동일한 출력을 생성합니다.테이블:
Call
id | date | phone_number |
---|---|---|
3 | 1045 | 333333333333 |
위 내용은 SQL 쿼리를 사용하여 등록되지 않은 발신자를 식별하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!