PHP mysql如何关联显示不同表输出的三个表

PHP mysql如何关联显示不同表输出的三个表,php,mysql,sql,facebook,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 JOI

我有这个图表

我想做的是有这个输出:

您是如何进行此项查询的

我有这个密码

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
请帮帮我。事实上,这一次我只是在关注Facebook的类似状态
唯一的问题是我不是一个业余爱好者,所以我很高兴听到你所有的答案。我真的需要你的帮助

如果我正确理解了你的意思,你需要一个feed表的外部连接,以便保留所有的文章,即使没有相关的feed,然后按post.pid分组,以便将每个文章的所有这些feed合并在一起,并选择所需的信息

我使用MySQL的函数来获取一个逗号分隔的列表,其中列出了到目前为止所有拥有 如果需要,可以使用分隔符修改器更改给定帖子的提要分隔符

选择users.firstname、users.lastname、, users.screenname、posts.post\u id、posts.user\u id、, posts.post,posts.upload_name, posts.post\u类型,posts.date\u发布, COUNTfeeds.user_id作为朋友,-喜欢的数量 SUMfeeds.user_id=?和你一样-我喜欢这个吗? GROUP_CONCATfeeds.user_id-谁喜欢它? 来自website.users 内部加入网站。在用户上发布帖子。用户\u id=帖子。用户\u id LEFT JOIN website.feed-ON-posts.post\u id=feed.post\u id 按posts.pid分组 按邮政订购。pid描述 更新

要获得喜欢该帖子的用户的全名(不包括自己),需要再次加入users表:

选择users.firstname、users.lastname、, users.screenname、posts.post\u id、posts.user\u id、, posts.post,posts.upload_name, posts.post\u类型,posts.date\u发布, COUNTfeeds.user_id作为朋友,-喜欢的数量 SUMfeeds.user_id=?和你一样-我喜欢这个吗? 组_CONCAT 不喜欢时的大小写。用户_id=?然后-排除自我 CONCAT_WS“”,likes.firstname,likes.lastname-全名 终止 来自website.users 内部加入网站。在用户上发布帖子。用户\u id=帖子。用户\u id LEFT JOIN website.feed-ON-posts.post\u id=feed.post\u id LEFT JOIN website.users likes ON feed.user\u id=likes.user\u id 按posts.pid分组 按邮政订购。pid描述
如果要为所有用户执行此操作并同时获取提要,则必须加入此提要表:


这一个应该做的把戏

谢谢你,伙计!但是兄弟,关于这一行sumuuser_id=?和你一样-我喜欢这个吗?组\u concatuer\u id是否应为feed.user\u id?我的错误是:字段列表中的列user\u id不明确是的,抱歉:feeds.user\u id.Updated。非常感谢大家的帮助!嗯,伙计!我在这里遇到了一个小问题,如何选择/替换字段组_CONCAT feeds.user_id作为从user_id输出到name的名称,不包括喜欢/提供帖子的您@eggyal@PeterWateber:GROUP_CONCATNULLIFfeeds.user_id?哪里是我的身份证。记住,伯爵也包括你自己,除非你在它的论点周围加上一个类似的空号。谢谢你,伙计!试图了解一切
SELECT u.firstname, u.lastname, 
   u.screenname, p.post_id, p.user_id,
   p.post, p.upload_name, 
   p.post_type, p.date_posted,
   COUNT(f.user_id) AS friends, SUM(f.user_id = ?) AS you
FROM website.users u
INNER JOIN website.posts p ON (u.user_id = p.user_id)
LEFT  JOIN website.feeds f ON (p.post_id = f.post_id)
GROUP BY p.pid
ORDER BY p.pid DESC