PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Hapus menggunakan gabungan luar kiri di Postgres

Seperti yang telah dicatat orang lain, Anda tidak dapat LEFT JOIN secara langsung dalam pernyataan DELETE. Namun, Anda dapat bergabung sendiri pada kunci utama ke tabel target dengan pernyataan MENGGUNAKAN, lalu bergabung dengan tabel yang bergabung sendiri.

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;

Perhatikan self join di tv_episodes.id pada klausa WHERE. Ini menghindari rute sub-kueri yang disediakan di atas.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Penggabungan batin dengan SqlAlchemy

  2. Untuk menggunakan tabel lain sebagai kriteria WHERE dalam SQL

  3. Cara mengurai xml dengan elemen opsional

  4. Stempel waktu jOOQ disimpan dengan offset Zona Waktu lokal

  5. Bagaimana Anda terhubung ke Database Postgres tanpa kata sandi menggunakan pg-promise?