PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Usuń za pomocą lewego sprzężenia zewnętrznego w Postgres

Jak zauważyli inni, nie można bezpośrednio w instrukcji DELETE LEFT JOIN. Możesz jednak wykonać samoprzyłączanie na kluczu podstawowym do tabeli docelowej za pomocą instrukcji USING, a następnie pozostawić sprzężenie z tą samoprzyłączoną tabelą.

DELETE FROM tv_episodes
USING tv_episodes AS ed
LEFT OUTER JOIN data AS nd ON
   ed.file_name = nd.file_name AND 
   ed.path = nd.path
WHERE
   tv_episodes.id = ed.id AND
   ed.cd_name = 'MediaLibraryDrive' AND nd.cd_name IS NULL;

Zwróć uwagę na samo złącze w tv_episodes.id w klauzuli WHERE. Pozwala to uniknąć trasy podzapytania podanej powyżej.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskaj dostęp do PostgreSQL przez interfejs C++ (błąd konsolidatora)

  2. Django unikalne razem awaria ograniczenia?

  3. leniwe zapytanie clojure.java.jdbc

  4. CURRENT_TIMESTAMP w milisekundach

  5. Pobieranie listy tabel, od których zależy widok/tabela w PostgreSQL