这是创建我的表的脚本:
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
。
现在无法正常工作,因为没有帖子被删除。
您只需要指定要从posts
表中删除条目:
DELETE posts
FROM posts
INNER JOIN projects ON projects.project_id = posts.project_id
WHERE projects.client_id = :client_id
编辑:有关更多信息,您可以看到此替代答案
问题内容: 我看到了这个 在MySQL中,INSERT,UPDATE和DELETE语句的联接工作。在UPDATE或DELETE语句中联接表时,可以更改多个表中的数据。 回答mysql认证指南中的问题。是真的吗 插入连接?一个例子吗? 问题答案: 您可以使用mysql插入… SELECT,这可能就是他们的意思。例如:
问题内容: 有人可以帮助我了解此查询的问题吗: 问题答案: 之所以无法使用,是因为MySQL不按照您尝试的方式在delete语句中支持连接语法。 使用: …或使用EXISTS:
问题内容: 我有一个组件数据库。每个组件都是特定的类型。这意味着组件和类型之间存在多对一的关系。删除类型时,我想删除所有具有该类型外键的组件。但是,如果我没记错的话,级联删除将在删除组件时删除类型。有什么办法可以做我所描述的吗? 问题答案: 这就是您要包含在组件表中的内容。 请记住,您需要使用InnoDB存储引擎:默认的MyISAM存储引擎不支持外键。
问题内容: 想象两个表(A和B): 现在,我想从A中删除B中不存在的记录,例如,从A中删除1、6和4。 我最初的想法是,您可以“否定”联接的结果。 问题答案: 我假设这些列被命名为。
问题内容: 我有一个Delphi应用程序,其中显示了像这样的查询已玩过的游戏的列表: 当我单击DBNavigator中的删除按钮时,也会删除game_types表中的联接记录。这是一个问题,因为许多其他游戏可以是同一类型。 我需要做些什么才能删除游戏,而不删除游戏类型? 问题答案: 您需要使用“唯一表”动态属性 从MSDN ADO文档 如果设置了“唯一表”动态属性,并且Recordset是对多个表
我在删除联接表中引用的实体时遇到问题。以下是三个链接的enitie。 当我尝试使用CrudRepository从来宾表中删除来宾时,它会给我这个错误。 错误:表“guest”上的更新或删除违反了表“guest\u group\u join”上的外键约束“FKKOUGVMCU860MOUACR1SHJXY”。键(id)=(4)仍然从表“guest\u group\u join”中引用。 有人能帮忙吗