> 데이터 베이스 > MySQL 튜토리얼 > SQL 쿼리를 사용하여 등록되지 않은 발신자를 식별하는 방법은 무엇입니까?

SQL 쿼리를 사용하여 등록되지 않은 발신자를 식별하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2025-01-22 18:39:11
원래의
630명이 탐색했습니다.

How to Identify Unregistered Callers Using SQL Queries?

알 수 없는 발신자 식별: 등록되지 않은 번호에 대한 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿