Det finns flera olika sätt att göra detta, med varierande effektivitet, beroende på hur bra din frågeoptimerare är och den relativa storleken på dina två tabeller:
Detta är det kortaste uttalandet och kan vara snabbast om din telefonbok är mycket kort:
SELECT *
FROM Call
WHERE phone_number NOT IN (SELECT phone_number FROM Phone_book)
alternativt (tack vare Alterlife )
SELECT *
FROM Call
WHERE NOT EXISTS
(SELECT *
FROM Phone_book
WHERE Phone_book.phone_number = Call.phone_number)
eller (tack vare WOPR)
SELECT *
FROM Call
LEFT OUTER JOIN Phone_Book
ON (Call.phone_number = Phone_book.phone_number)
WHERE Phone_book.phone_number IS NULL
(om man ignorerar att, som andra har sagt, är det normalt bäst att välja bara de kolumner du vill ha, inte '*
')