Er zijn verschillende manieren om dit te doen, met variërende efficiëntie, afhankelijk van hoe goed uw query-optimizer is en de relatieve grootte van uw twee tabellen:
Dit is de kortste verklaring en kan het snelst zijn als uw telefoonboek erg kort is:
SELECT *
FROM Call
WHERE phone_number NOT IN (SELECT phone_number FROM Phone_book)
alternatief (dankzij Alterlife )
SELECT *
FROM Call
WHERE NOT EXISTS
(SELECT *
FROM Phone_book
WHERE Phone_book.phone_number = Call.phone_number)
of (dankzij WOPR)
SELECT *
FROM Call
LEFT OUTER JOIN Phone_Book
ON (Call.phone_number = Phone_book.phone_number)
WHERE Phone_book.phone_number IS NULL
(je negeert dat, zoals anderen al hebben gezegd, het normaal gesproken het beste is om alleen de kolommen te selecteren die je wilt, niet '*
')