SELECT t1.name
FROM table1 t1
LEFT JOIN table2 t2 ON t2.name = t1.name
WHERE t2.name IS NULL
P :Co się tutaj dzieje?
A :Koncepcyjnie wybieramy wszystkie wiersze z table1 a dla każdego wiersza próbujemy znaleźć wiersz w table2 z tą samą wartością dla name kolumna. Jeśli nie ma takiego wiersza, po prostu zostawiamy table2 część naszego wyniku jest pusta dla tego wiersza. Następnie ograniczamy nasz wybór, wybierając tylko te wiersze w wyniku, w których pasujący wiersz nie istnieje. Na koniec ignorujemy wszystkie pola z naszego wyniku z wyjątkiem name kolumna (ta, o której jesteśmy pewni, że istnieje, z table1 ).
Chociaż może nie być to najwydajniejsza możliwa metoda we wszystkich przypadkach, powinna działać w zasadzie w każdym silniku bazy danych, który kiedykolwiek próbuje zaimplementować ANSI 92 SQL