Existuje několik různých způsobů, jak toho dosáhnout, s různou účinností v závislosti na tom, jak dobrý je váš optimalizátor dotazů a na relativní velikosti vašich dvou tabulek:
Toto je nejkratší výpis a může být nejrychlejší, pokud je váš telefonní seznam velmi krátký:
SELECT *
FROM Call
WHERE phone_number NOT IN (SELECT phone_number FROM Phone_book)
alternativně (díky Alterlife )
SELECT *
FROM Call
WHERE NOT EXISTS
(SELECT *
FROM Phone_book
WHERE Phone_book.phone_number = Call.phone_number)
nebo (díky WOPR)
SELECT *
FROM Call
LEFT OUTER JOIN Phone_Book
ON (Call.phone_number = Phone_book.phone_number)
WHERE Phone_book.phone_number IS NULL
(ignorujte, že, jak řekli jiní, je obvykle nejlepší vybrat pouze požadované sloupce, nikoli '*
')