gpt4 book ai didi

php - 超过 3 个表的 MySQL DELETE JOIN 在特定情况下不起作用

转载 作者:行者123 更新时间:2023-11-29 02:43:29 32 4
gpt4 key购买 nike

我在 MySQL 中有 3 个表,我正在处理以下 DELETE 语句:

DELETE c, b, e
FROM category c, block b, element e
WHERE
c.category_id = 1 AND
c.category_template_id = 1 AND
b.block_category_id = c.category_id AND
e.element_category_id = c.category_id

这个 DELETE 语句非常有效,表类别中 id = 1 的数据行将被删除,表 block 和表元素中的相应数据行也将被删除。

但是如果表 block 和/或表元素中没有对应的数据,则DELETE-Statement根本不会删除任何内容(即使类别中有一个id = 1的数据行)。

我怎样才能改变声明来解决这个问题?我在 mysql-docs、google 和 stackoverflow 上搜索了将近 14 个小时。请帮助我。

感谢您的回答!

最佳答案

在您的查询中使用 mysql JOIN,如下所示,

DELETE c, b, e
FROM category c
LEFT JOIN block b ON c.category_id = b.block_category_id LEFT JOIN element e ON e.element_category_id = c.category_id
WHERE c.category_id = 1 AND c.category_template_id = 1;

希望对你有帮助

关于php - 超过 3 个表的 MySQL DELETE JOIN 在特定情况下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46542645/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com