Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Hapus, Perbarui dengan tabel turunan?

Anda tidak dapat langsung menghapus dari subquery, tetapi Anda masih dapat menggunakannya jika Anda mau, Anda hanya perlu menggunakannya dalam JOIN :

DELETE usrs
FROM usrs
    INNER JOIN (
        SELECT * FROM usrs WHERE name = 'john'
    ) t ON usrs.Id = t.Id

Atau Anda bisa menggunakan IN :

DELETE usrs
WHERE ID IN (
   SELECT ID
   FROM usrs
   WHERE name = 'John'
)

Dengan ini, untuk contoh ini, saya tidak tahu mengapa Anda menginginkan subquery:

DELETE usrs WHERE name = 'John'

Edit berdasarkan komentar. Untuk menghapus dari beberapa tabel sekaligus, Anda dapat memiliki beberapa DELETE pernyataan, atau Anda dapat menggunakan sesuatu seperti berikut:

delete t1, t2, t3
from (select 'john' as usr) t
  left join t1 on t.usr=t1.usr
  left join t2 on t.usr=t2.usr
  left join t3 on t.usr=t3.usr


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa kinerja ANTARA mysql di atas ..?

  2. Kapan menggunakan TEXT di mysql alih-alih VARCHAR

  3. PHP Konversi mysql ke mysqli

  4. Belajar MySQL / MariaDB untuk Pemula – Bagian 1

  5. Potong semua tabel (sebagian besar memiliki kendala). Bagaimana cara menjatuhkannya sementara