0

我正在为我的部门建立一个小型社交网络。

我的主页是你可以发表评论的地方,你的朋友可以评论它。

我有4 个表...allposts_tb、friendship_tb、response_tb 和 signup_tb ..

allposts_tb收集人们发布的更新和帖子,它具有以下列 ( all_id(PK), name, comment, time)

友谊_tb作为列 ( friend_id(Pk), myname, newfriend, status)

response_tb作为列(id(Pk), name, response, all_id(Fk), time

signup_tb作为列 ( signup_id, lastname, firstname, email, password, country, profilepicture)

我可以使用下面的 sql 查询轻松显示人们发表的评论

 SELECT allposts_tb.all_id,allposts_tb.name,allposts_tb.comment, allposts_tb.time,
friendship_tb.myname,friendship_tb.newfriend,signup_tb.firstname,
signup_tb.lastname,signup_tb.email,signup_tb.profilepicture,
allposts_tb.expand   
FROM allposts_tb,friendship_tb,signup_tb
WHERE allposts_tb.name = friendship_tb.newfriend
 and friendship_tb.myname=colname and
 allposts_tb.name=signup_tb.email
ORDER BY allposts_tb.all_id DESC
and colname=$_SESSION['MM_Username']

好吧,在评论下方显示人们对特定评论的回复时遇到问题……就像复制 facebook 的页面一样。你马上说些什么,它应该显示在评论下方……我知道我打算使用 sub询问。就在我给你们的查询中……已经阅读了很多网页,但无法正常工作……请帮助我……

4

1 回答 1

1

除了使用 response_tb 而不是 allposts_tb 表之外,您可以创建与第一个查询类似的第二个查询。然后在两个查询之间放置一个 UNION ALL 语句,结合结果。最后,您可以放置​​一个 ORDER BY 子句并按 all_id 排序,然后按时间排序。

只需将来自 response_tb 的查询中的“comment”字段替换为“response”即可。

SQL 很可能看起来像这样:

SELECT allposts_tb.all_id,allposts_tb.name,allposts_tb.comment, allposts_tb.time,
friendship_tb.myname,friendship_tb.newfriend,signup_tb.firstname,
signup_tb.lastname,signup_tb.email,signup_tb.profilepicture,
allposts_tb.expand   
FROM allposts_tb,friendship_tb,signup_tb
WHERE allposts_tb.name = friendship_tb.newfriend
 and friendship_tb.myname=colname and
 allposts_tb.name=signup_tb.email
and colname=$_SESSION['MM_Username']

UNION ALL

SELECT response_tb.all_id,response_tb.name,response_tb.response, response_tb.time,
friendship_tb.myname,friendship_tb.newfriend,signup_tb.firstname,
signup_tb.lastname,signup_tb.email,signup_tb.profilepicture,
response_tb.expand   
FROM response_tb,friendship_tb,signup_tb
WHERE response_tb.name = friendship_tb.newfriend
 and friendship_tb.myname=colname and
 response_tb.name=signup_tb.email
and colname=$_SESSION['MM_Username']
ORDER BY all_id DESC, time desc
于 2012-09-28T19:24:42.593 回答