Pet*_*ber 5 php mysql sql facebook
我有这个图 
我想做的是有这个输出:

你如何设法查询这个?
我有这个代码
SELECT users.firstname, users.lastname,
users.screenname, posts.post_id, posts.user_id,
posts.post, posts.upload_name,
posts.post_type, posts.date_posted
FROM website.users users
INNER JOIN website.posts posts ON (users.user_id = posts.user_id)
ORDER BY posts.pid DESC
//PROBLEM with this one is that it only views the post from all users.
//SO I added
SELECT COUNT(user_id) AS friends, SUM(user_id = ?) AS you, user_id
FROM feeds WHERE post_id = ?
//This one will give you two fields containing how many different users **feeds** the
post
Run Code Online (Sandbox Code Playgroud)
请帮帮我们 实际上这个我只是跟随Facebook的 "LIKE"状态唯一的事情就是我不是这类东西的业余爱好者所以我很高兴听到你所有的答案.我真的需要你的帮助
如果我理解正确,您需要与feeds表进行外部联接(以便保留所有内容posts,即使没有关联feeds),然后将每个帖子的所有此类提要以及所需信息GROUP BY post.pid合并在一起。SELECT
我使用 MySQL 的函数来获取对给定帖子有“提要”GROUP_CONCAT()的所有用户(最多 )的逗号分隔列表(如果需要,您可以使用修饰符更改分隔符)。group_concat_max_lenSEPARATOR
SELECT users.firstname, users.lastname,
users.screenname, posts.post_id, posts.user_id,
posts.post, posts.upload_name,
posts.post_type, posts.date_posted,
COUNT(feeds.user_id) AS friends, -- number of "likes"
SUM(feeds.user_id = ?) AS you, -- did I like this?
GROUP_CONCAT(feeds.user_id) -- who likes it?
FROM website.users users
INNER JOIN website.posts posts ON (users.user_id = posts.user_id)
LEFT JOIN website.feeds feeds ON (posts.post_id = feeds.post_id)
GROUP BY posts.pid
ORDER BY posts.pid DESC
Run Code Online (Sandbox Code Playgroud)
更新
要获取“喜欢”该帖子的用户的全名(不包括自己),需要users再次加入该表:
SELECT users.firstname, users.lastname,
users.screenname, posts.post_id, posts.user_id,
posts.post, posts.upload_name,
posts.post_type, posts.date_posted,
COUNT(feeds.user_id) AS friends, -- number of "likes"
SUM(feeds.user_id = ?) AS you, -- did I like this?
GROUP_CONCAT(
CASE WHEN NOT likes.user_id = ? THEN -- exclude self
CONCAT_WS(' ', likes.firstname, likes.lastname) -- full names
END
)
FROM website.users users
INNER JOIN website.posts posts ON (users.user_id = posts.user_id)
LEFT JOIN website.feeds feeds ON (posts.post_id = feeds.post_id)
LEFT JOIN website.users likes ON (feeds.user_id = likes.user_id)
GROUP BY posts.pid
ORDER BY posts.pid DESC
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2356 次 |
| 最近记录: |