1

大家早上好,周四早上快乐。我希望我自己能做到这一点,但由于我还不是 MySQL 语句的大师(还)而且我在这个DELETE查询中迷失了方向,所以就这样......

我必须做一个DELETE像这样的简单查询,(通过它的 id 删除评论)

DELETE FROM mya_news_comments WHERE comment_id='".$_GET['comment_id']."'";

但同时,为了防止人们删除整个网站的评论,我需要确保删除此评论的人是它应该是的人(在我们的例子中,是艺术家)。

我有另一个表mya_news,其中有字段news_idartist_idmya_news_comments我也有一个名为news_id

所以我需要检查我是否删除了特定艺术家的comment_id,而不是其他艺术家的。基本上我需要交叉检查news_idmya_news_comments签出的字段是否与具有相同news_idfrommya_newsartist_idfrom的字段mya_news等于$_id(包含我的artist_id

我真的被困在这里了。如果需要,我很乐意提供更多细节。

谢谢。

4

2 回答 2

2
DELETE mya_news_comments
FROM   mya_news_comments
WHERE  mya_news_comments.comment_id = (SELECT [another_table].comment_id WHERE [cond])
   AND mya_news.artist_id = (SELECT [another_table].artist_id WHERE [cond]);
于 2012-05-31T08:07:58.603 回答
1

您可以像在语句中一样在语句中连接表:DELETESELECT

DELETE mya_news_comments
FROM   mya_news_comments JOIN mya_news USING (news_id)
WHERE  mya_news_comments.comment_id = ?
   AND mya_news.artist_id = ?
于 2012-05-31T08:04:43.377 回答