不知道这是否可行,我正在寻找一个编写社交网络式代码但需要一点帮助。
SELECT wall.Wid, wall.uid, wall.wcomment, wall.name, comment.wid, comment.comment,comment.wid
FROM wall
LEFT JOIN comment ON wall.Wid=comment.wid
WHERE wall.uid in (SELECT fid from friends where uid = 3)
大家好
最佳答案
扩展为答案:
这在 SQL 中实际上并不容易,尤其是不限制墙贴和评论。你最好循环执行此操作,检索 x 个墙贴,然后为每个检索 y 个评论。这样您还可以缓存每个帖子的评论并保存每次检索它们。
你可以像这样限制墙贴的数量:
SELECT wall.Wid, wall.uid, wall.wcomment, wall.name, comment.wid, comment.comment, comment.wid
FROM wall LEFT JOIN comment ON wall.Wid=comment.wid
WHERE wall.Wid in (SELECT Wid FROM wall WHERE wall.uid IN (SELECT fid from friends where uid = 3) LIMIT 0, 10)
请记住,这是非常低效的,因为对于每条评论,您都将检索墙贴,因此如果墙贴有 10 条评论,您将获得墙贴数据 10 次,每次都有不同的评论.我建议您使用缓存循环执行此操作。
关于sql - 使用连接限制结果而不计算连接结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2902677/