mysql DELETE与另一个表的字段检查

时间:2012-05-31 08:02:22

标签: php mysql

早上好,周四早上快乐。我希望自己可以自己完成这个,但是因为我不是MySQL语句中的高手(还),我在这个DELETE查询中迷失了,这里就是......

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

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

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

我有另一个表mya_news,其中包含news_idartist_id字段 在mya_news_comments我还有一个名为news_id

的字段

所以我需要检查是否删除了特定艺术家的comment_id,而不是其他艺术家。 基本上我需要交叉检查来自news_id的{​​{1}}字段是否与来自mya_news_comments的{​​{1}}字段以及来自{{1}的news_id字段进行核对等于mya_news(包含我的artist_id

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

感谢。

2 个答案:

答案 0 :(得分: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]);

答案 1 :(得分:1)

DELETE语句中的join个表格就像SELECT语句一样{<1}}:

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 = ?