sql >> Database >  >> RDS >> PostgreSQL

Verwijderen met linker outer join in Postgres

Zoals anderen al hebben opgemerkt, kunt u niet rechtstreeks LEFT JOIN in een DELETE-instructie. U kunt echter zelf joinen op een primaire sleutel van de doeltabel met een USING-instructie, en vervolgens left join tegen die zelf-gekoppelde 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;

Let op de self-join op tv_episodes.id in de WHERE-clausule. Dit vermijdt de hierboven gegeven subquery-route.



  1. Samengestelde primaire sleutel in django

  2. apostrof tijdens Insert (Mysql)

  3. SQL Bereken het gemiddelde tijdsverschil tussen de totale rijen

  4. 6 manieren om dubbele rijen in Oracle te selecteren