Voici le script pour créer mes tables:
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)
);
Dans mon code PHP, lors de la suppression d'un client, je souhaite supprimer tous les articles des projets:
DELETE
FROM posts
INNER JOIN projects ON projects.project_id = posts.project_id
WHERE projects.client_id = :client_id;
La table des publications n'a pas de clé étrangère client_id
, seulementproject_id
. Je souhaite supprimer les articles des projets qui ont été approuvés client_id
.
Cela ne fonctionne pas pour le moment car aucun message n'est supprimé.
DELETE posts FROM posts JOIN projects ...
, plutôt qu'un IN (subquery)
modèle. (La réponse de Yehosef donne un exemple du modèle préféré.)
alias
le nom de la table et l'utiliser.