SELECT t1.name
FROM table1 t1
LEFT JOIN table2 t2 ON t2.name = t1.name
WHERE t2.name IS NULL
P :O que esta acontecendo aqui?
A :Conceitualmente, selecionamos todas as linhas de
table1 e para cada linha tentamos encontrar uma linha em table2 com o mesmo valor para o name coluna. Se não houver tal linha, apenas deixamos a table2 parte do nosso resultado vazio para essa linha. Em seguida, restringimos nossa seleção escolhendo apenas as linhas no resultado em que a linha correspondente não existe. Finalmente, ignoramos todos os campos do nosso resultado, exceto o name coluna (a que temos certeza que existe, de table1 ). Embora possa não ser o método de melhor desempenho possível em todos os casos, ele deve funcionar basicamente em todos os mecanismos de banco de dados que tentam implementar o SQL ANSI 92