Berikut ini skrip untuk membuat tabel saya:
CREATE TABLE clients (
client_i INT(11),
PRIMARY KEY (client_id)
);
CREATE TABLE projects (
project_id INT(11) UNSIGNED,
client_id INT(11) UNSIGNED,
PRIMARY KEY (project_id)
);
CREATE TABLE posts (
post_id INT(11) UNSIGNED,
project_id INT(11) UNSIGNED,
PRIMARY KEY (post_id)
);
Dalam kode PHP saya, ketika menghapus klien, saya ingin menghapus semua posting proyek:
DELETE
FROM posts
INNER JOIN projects ON projects.project_id = posts.project_id
WHERE projects.client_id = :client_id;
Tabel posting tidak memiliki kunci asing client_id, hanya project_id. Saya ingin menghapus posting di proyek yang telah lulus client_id.
Ini tidak berfungsi sekarang karena tidak ada posting yang dihapus.
DELETE posts FROM posts JOIN projects ..., bukan IN (subquery)pola. (Jawaban dari Yehosef memberikan contoh pola yang disukai.)
aliasuntuk nama tabel dan menggunakannya.