Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да изберете всички записи от една таблица, които не съществуват в друга таблица?

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Може ли SQL Server да изпрати уеб заявка?

  2. Как да върнете броя на редовете в резултат от заявка в SQL Server

  3. Проучване на различните ограничения в SQL Server

  4. Планирано изпълнение на съхранената процедура на SQL сървър

  5. Каква е разликата между интегрирана сигурност =истинска и интегрирана сигурност =SSPI?