gpt4 book ai didi

php - 带有 JOIN 错误的 mysql DELETE 查询...

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

这是我的问题,

我必须在 mysql 中使用连接语句构建查询...我的数据库表如下所示:

table 1: 
contact, with contact_id, contact_value, contact_relation
table 2 :
relation, with relation_id, relation_one, relation_two

我必须从联系人中删除联系人具有关系值(关系 id)和所有这些关系,但仅限于我的 relation_one 等于预定义值的联系人...

所以我的实际想法是这个:

DELETE FROM 'relation' INNER JOIN contact ON contact.contact_relation = relation.relation_id WHERE relation_one = MyValue

但它并没有按照我的意思去做......

我在我的 mysql 中以这种方式尝试:

DELETE relation.* FROM `relation` INNER JOIN `contact` ON `contact`.`contact_relation`=`relation`.`relation_id` WHERE `relation_one` = 48

我认为这可能看起来像一个愚蠢的问题......甚至是一个“已经回答的问题”,但我查看了堆栈,发现类似但没有解决我的问题,因为当我应用此查询时,它会删除所有关系 WHERE relation_one = 48,不仅是我需要的那些...(我的意思是那些被引用到 contact_relation 下的联系人表中的那些(这是我可以删除的关系的 ID,如果这些关系有relation_one 仅设置为 48!)

我的意思是:我可以在关系表中有 100 条记录,其中 relation_one 是 48...但我只想删除这些“关系”,其中 relation_id = contact_relation...我的 contact.contact_relation 在大多数情况下是 null...但有时,对于 2/100,它是一个现有的 relation_id 写入那里...这些是我“可能必须”删除的关系...

最佳答案

当您使用左连接删除时,指定要删除的表而不是列:

DELETE `relation` FROM `relation` 
INNER JOIN `contact` ON `contact`.`contact_relation`=`relation`.`relation_id`
WHERE `relation_one` = 48

关于php - 带有 JOIN 错误的 mysql DELETE 查询...,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25843292/

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