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é.)
aliasle nom de la table et l'utiliser.