我做了一个表上的社交网络网站的所有评论:发表评论Wallposts和评论
另外,我一个表,分配给一个评论所有评论:comment_assign
所以,我建一个函数comment()以便在每个节类型(图像,用户页面,组等)中轻松实现。在$ _GET ['s'] ==用户的情况下,我想要在这些wallposts上添加wallposts以及评论。全部存储在'评论'中。
我有了这个计划,以显示此: 1. SQL查询来获取评论 2. HTML输出 3.这个HTML输出内的另一个SQL查询来获得这个评论的规定分配的注释(wallpost情况)
现在的问题是,我的第一个查询显示所有评论。另外,评论应该是子注释。所以我的问题是,如果有任何方法可以在第一个查询中指定,那么当我收到我的所有评论时,请说:如果此comment_id可用,请在comment_assign中查找。如果是这样,不要显示这个评论,因为它是一个子评论(我会在提到的步骤3中显示)。
也许这整个结构可能会改变?我将不胜感激任何建议。即使很难实现,但最有效。
表结构:
评论
ID,UID,NID,网站,文本,日期
comment_assign
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`
分享您的查询 – m1k3y3
如果我编辑我的最后一行:“AND ca.'comment_id' IS NULL”它的作品。但是,这两个查询的结构仍然不是很高效,我想呢?关于快速输出所有数据和编程效率?我应该以某种方式更改我的table_structure或将这两个查询合并为一个? – Vay