Menghapus data dengan memilih dari database lain
Saya ingin menghapus data dari satu database dengan memilih dari database lain.
delete FROM organization o
WHERE o.id IN
(select 100 + s.id_status FROM database2.status s)
Untuk yang satu ini, bagaimana saya bisa menghapus field tersebut dari pilihan tersebut dari database ke-2? Ini kemungkinan besar merupakan kekeliruan di pihak saya, tetapi saya tidak dapat menunjukkan masalah yang sebenarnya karena berfungsi ketika saya mengganti hapus dari dengan pilih * dari ...
Jawaban
Apakah Anda ingin menghapus dari kedua tabel? Jika demikian gunakan formulir JOIN dan hapus beberapa tabel
DELETE t1.*, t2.*
FROM organization t1
JOIN database2.status t2 ON t1.id = t2.id_status + 100
atau
DELETE t1.*, t2.*
FROM organization t1
JOIN database2.status t2 ON t1.id - 100 = t2.id_status
Jika organizationtabel kecil maka varian kedua lebih disukai. Tentu saja indeks database2.status (id_status)harus ada untuk perbaikan.
Tidak, saya hanya ingin menghapus data dari organisasi karena status harus tetap utuh karena digunakan untuk mengimpor data ke tabel lain
Jika demikian, gunakan saja, DELETE t1.*bukan DELETE t1.*, t2.*.