İşte benim tabloları oluşturmak için komut dosyası:
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)
);
PHP kodumda, bir istemciyi silerken, tüm proje yayınlarını silmek istiyorum:
DELETE
FROM posts
INNER JOIN projects ON projects.project_id = posts.project_id
WHERE projects.client_id = :client_id;
Mesajlar tablosunda client_id
yalnızca bir yabancı anahtar yoktur project_id
. Başarılı olan projelerdeki yayınları silmek istiyorum client_id
.
Hiçbir yayın silinmediği için bu şu an çalışmıyor.
DELETE posts FROM posts JOIN projects ...
yerine IN (subquery)
a'dır. (Yehosef'in cevabı tercih edilen kalıbın bir örneğini veriyor.)
alias
Tablo adı için de kullanabilir ve kullanabilirsiniz.