这是创建我的表的脚本:
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
。
现在无法正常工作,因为没有帖子被删除。
DELETE posts FROM posts JOIN projects ...
,而不是IN (subquery)
模式。(来自Yehosef的答案给出了首选模式的示例。)
alias
表名并使用它。