辨識不符的通話記錄
本指南示範如何在「Call」表中尋找「Phone_book」表中缺少對應條目的通話記錄。 目標是識別來自電話簿中未列出的號碼的通話。 我們將探索幾種 SQL 方法來實現這一目標。
方法一:使用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>
此查詢從「Call」表中選取所有資料列,其中在「Phone_book」表的 phone_number
清單中找不到 phone_number
。
方法二:使用NOT EXISTS
此方法利用帶有 NOT EXISTS
的子查詢來檢查是否有匹配的電話號碼。
<code class="language-sql">SELECT * FROM Call WHERE NOT EXISTS (SELECT 1 FROM Phone_book WHERE Phone_book.phone_number = Call.phone_number);</code>
子查詢搜尋符合項目。 如果未找到符合項目 (NOT EXISTS
),則外部查詢將包含該記錄。
方法三:利用LEFT OUTER JOIN
此方法使用 LEFT OUTER JOIN
組合兩個表,然後過濾「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>
A LEFT OUTER JOIN
傳回「Call」表中的所有行。 如果「Phone_book」中沒有符合項,「Phone_book」中對應的欄位將為NULL
。 WHERE
子句過濾以僅顯示這些不符合的行。 這種方法通常因其效能優勢而受到青睞,尤其是對於較大的資料集。
以上是如何在沒有對應電話簿條目的情況下尋找通話?的詳細內容。更多資訊請關注PHP中文網其他相關文章!