jika database adalah InnoDB Anda tidak perlu melakukan penggabungan dalam penghapusan. hanya
DELETE FROM spawnlist WHERE spawnlist.type = "monster";
dapat digunakan untuk menghapus semua rekaman yang ditautkan dengan kunci asing di tabel lain, untuk melakukannya Anda harus terlebih dahulu menautkan tabel Anda dalam waktu desain.
CREATE TABLE IF NOT EXIST spawnlist (
npc_templateid VARCHAR(20) NOT NULL PRIMARY KEY
)ENGINE=InnoDB;
CREATE TABLE IF NOT EXIST npc (
idTemplate VARCHAR(20) NOT NULL,
FOREIGN KEY (idTemplate) REFERENCES spawnlist(npc_templateid) ON DELETE CASCADE
)ENGINE=InnoDB;
jika Anda menggunakan MyISAM Anda dapat menghapus catatan yang bergabung seperti ini
DELETE a,b
FROM `spawnlist` a
JOIN `npc` b
ON a.`npc_templateid` = b.`idTemplate`
WHERE a.`type` = 'monster';
di baris pertama saya telah menginisialisasi dua tabel temp untuk menghapus catatan, di baris kedua saya telah menetapkan tabel keberadaan ke a dan b tetapi di sini saya telah menghubungkan kedua tabel bersama dengan kata kunci gabung, dan saya telah mencocokkan kunci utama dan asing untuk kedua tabel yang membuat link, di baris terakhir saya telah memfilter record by field untuk dihapus.