这是创建我的表的脚本:
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代码中,删除客户端时,我要删除所有项目帖子:
DELETE FROM posts INNER JOIN projects ON projects.project_id = posts.project_id WHERE projects.client_id = :client_id;
posts表client_id仅没有外键project_id。我想删除已通过项目中的帖子client_id。
client_id
project_id
现在无法正常工作,因为没有帖子被删除。
您只需要指定要从posts表中删除条目:
posts
DELETE posts FROM posts INNER JOIN projects ON projects.project_id = posts.project_id WHERE projects.client_id = :client_id
编辑:有关更多信息,您可以看到此替代答案