sql >> Databáze >  >> RDS >> PostgreSQL

Odstraňte pomocí levého vnějšího spojení v Postgresu

Jak již poznamenali ostatní, nemůžete LEFT JOIN přímo v příkazu DELETE. Můžete se však sami připojit na primárním klíči k cílové tabulce pomocí příkazu USING a poté vlevo připojit k této samostatně připojené tabulce.

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;

Všimněte si vlastního připojení na tv_episodes.id v klauzuli WHERE. Tím se vyhnete výše uvedené trase dílčího dotazu.



  1. ORACLE SQL získá rozdíl dvou hodnot načtených ze 2 vybraných příkazů

  2. Pravidelná, opakující se interakce mezi orákulem a inteligentní smlouvou

  3. Postgres:upravte každý prvek pole

  4. Jak přejmenovat uzel Oracle XMLTYPE