SELECT t1.name
FROM table1 t1
LEFT JOIN table2 t2 ON t2.name = t1.name
WHERE t2.name IS NULL
В :Какво става тук?
А :Концептуално избираме всички редове от table1
и за всеки ред се опитваме да намерим ред в table2
със същата стойност за name
колона. Ако няма такъв ред, просто оставяме table2
част от нашия резултат празна за този ред. След това ограничаваме нашия избор, като избираме само онези редове в резултата, където съответстващият ред не съществува. И накрая, ние игнорираме всички полета от нашия резултат с изключение на name
колона (тази, за която сме сигурни, че съществува, от table1
).
Въпреки че може да не е най-ефективният възможен метод във всички случаи, той трябва да работи на практика във всяка машина за база данни, която се опитва да внедри ANSI 92 SQL