Można to zrobić na kilka różnych sposobów, z różną wydajnością, w zależności od tego, jak dobry jest optymalizator zapytań i od względnego rozmiaru dwóch tabel:
To jest najkrótsze stwierdzenie i może być najszybsze, jeśli Twoja książka telefoniczna jest bardzo krótka:
SELECT *
FROM Call
WHERE phone_number NOT IN (SELECT phone_number FROM Phone_book)
alternatywnie (dzięki Alterlife )
SELECT *
FROM Call
WHERE NOT EXISTS
(SELECT *
FROM Phone_book
WHERE Phone_book.phone_number = Call.phone_number)
lub (dzięki WOPR)
SELECT *
FROM Call
LEFT OUTER JOIN Phone_Book
ON (Call.phone_number = Phone_book.phone_number)
WHERE Phone_book.phone_number IS NULL
(ignorując to, jak powiedzieli inni, zwykle najlepiej jest wybrać tylko te kolumny, które chcesz, a nie „*
')