我有以下MySQL查询,我正在使用PHP(5.2)。DELETE FROM查询JOIN不工作?
DELETE t1.*, t3.* FROM
forum_posts AS t1,
forum_topics AS t2,
user_points AS t3
WHERE t1.topic_id = t2.topic_id
AND t2.deleted = 1
AND t1.post_id = t3.id
AND t3.type = 'post'
AND t1.post_author = t3.profile_author
但是它不能正常工作,我怎么打算太(!没有任何反应),让我解释一下:
我打算查询中做的是,以删除forum_posts
表中的所有行/或(我在说“和/或”,因为它将取决于行是否存在)删除user_points
表中的所有行=> [如果已创建帖子的主题已被删除()避免混淆它真的只是“隐藏”,我们通过检查它是否等于1
)]来确定这一点)。
希望查询结构解释一下自己,topic_id
主要用来把JOIN
这个表一起。
查询运行良好(不提供MySQL或PHP错误,所以我会假设语法正常?),我已经检查了DB和所存在的删除的主题(deleted
列设置为1
)和他们的帖子也存在这些主题(所以不是没有数据的情况)。
感谢所有回复。
尝试用'SELECT'替换'DELETE',看看你是否得到你想要删除的行。 – Vache
@Vache,我刚刚尝试过,并且它什么也没有返回,然后我尝试删除user_points部分,它返回了帖子的行,看到的点不存在我认为这是问题,是他们的任何方式检查它是否存在于查询中? – newbtophp