我需要有关创建内部联接查询的帮助。
我有 2 个 table 、博客和关注者。
在博客表中,我拥有所有博客信息,然后在关注者中,我有两个字段,分别是用户 ID 和用户关注的博客 ID。
我想创建一个查询,根据关注者数量对博客进行排序。
这是我用来展示用户正在关注的构建的示例(仅供引用):
$query = "SELECT * FROM blogs INNER JOIN followers ON (blogs.id = followers.blogid) WHERE followers.userid='" .$usernamesesh. "'";
我怎样才能创建一个类似的查询来选择所有博客,但按关注者从高到低对它们进行排序。
希望这是有道理的,由于某种原因我无法理解这个问题!
唯一的其他选择是在博客表中添加一些关注者字段,但这将涉及更改我的关注脚本等。
克雷格。
最佳答案
如果不知道表的确切结构,就很难判断。假设您的关注者表看起来像这样
blogid | userid
-------+----------
1 | 2
-------+----------
1 | 1
-------+----------
1 | 3
-------+----------
2 | 2
-------+---------
SELECT blogid, COUNT(userid) AS UserCount FROM followers
GROUP BY blogid ORDER BY UserCount DESC;
然后您可以加入博客表以从该表中获取您需要的列。
SELECT blogs.*, IFNULL(f.UserCount,0) AS UserCount
FROM blogs
LEFT JOIN (
SELECT blogid, COUNT(userid) AS UserCount FROM followers
GROUP BY blogid
) f
ON f.blogid = blogs.id
ORDER BY UserCount DESC
关于php - 内连接查询建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19710527/