我为社交网站上的所有评论制作了一张表格:comment
另外,我有一张表用于分配给一条评论的所有评论:comment_assign
因此,我构建了一个函数 comment() 以便在每个部分类型(图像、用户页面、组等)中轻松实现它。在 $_GET['s']==user 的情况下,我希望有墙贴以及对这些墙贴的评论。全部存储在“评论”中。
我有这个方案来显示这个: 1. 用于获取评论的 sql 查询 2. html 输出 3. 此 html 输出中的另一个 sql 查询以获取评论的指定分配评论(在本例中为墙贴)
现在的问题是我的第一个查询显示了所有评论。还有应该是子评论的评论。所以我的问题是,如果有任何方法可以在第一个查询中指定,当我得到所有评论时,说:如果这个comment_id 可用,请查看comment_assign。如果是,请不要显示此评论,因为它是子评论(我将在提到的步骤 3 中显示)。
也许整个结构可能会改变?我将不胜感激任何建议。甚至难以实现,但这将是最有效的。
表结构:
评论
id、uid、nid、站点、文本、日期
评论分配
comment_id,assign_id
第一个 SQL 查询示例,它不能避免显示所有评论(也分配的评论)。见最后一行:
SELECT *
FROM `comments` AS c
LEFT JOIN `comment_assign` AS ca ON ca.`comment_id` = c.`id`
LEFT JOIN `users` AS u ON c.`uid` = u.`id`
WHERE c.`nid`='".$nid."'
AND c.`site`='".$_GET['s']."'
AND ca.`comment_id` != c.`id`