SELECT t1.name
FROM table1 t1
LEFT JOIN table2 t2 ON t2.name = t1.name
WHERE t2.name IS NULL
Q :Hvad sker der her?
A :Konceptuelt vælger vi alle rækker fra table1
og for hver række forsøger vi at finde en række i table2
med samme værdi for name
kolonne. Hvis der ikke er en sådan række, forlader vi bare table2
del af vores resultat tom for den række. Derefter begrænser vi vores valg ved kun at vælge de rækker i resultatet, hvor den matchende række ikke findes. Til sidst ignorerer vi alle felter fra vores resultat undtagen name
kolonne (den vi er sikre på, findes, fra table1
).
Selvom det måske ikke er den mest effektive metode i alle tilfælde, burde den fungere i stort set alle databasemotorer nogensinde, der forsøger at implementere ANSI 92 SQL