sql >> Database teknologi >  >> RDS >> PostgreSQL

Slet ved hjælp af venstre ydre joinforbindelse i Postgres

Som andre har bemærket, kan du ikke LEFT JOIN direkte i en DELETE-erklæring. Du kan dog selv joinforbinde på en primær nøgle til måltabellen med en USING-sætning og derefter forlade joinforbindelse mod den selvforbundne 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;

Bemærk selvtilslutningen på tv_episodes.id i WHERE-klausulen. Dette undgår underforespørgselsruten angivet ovenfor.



  1. Opret forbindelse til ekstern MySQL via Python

  2. MySQL regex ved kørsel

  3. Hvordan kan jeg generere (eller få) et ddl-script på en eksisterende tabel i Oracle? Jeg er nødt til at genskabe dem i Hive

  4. Hvor skal man bruge mysql_real_escape_string for at forhindre SQL-injektion?