新闻源的Mysql ORDER BY或GROUP BY
我想创建一个类似于Facebook新闻源的东西:一个跟踪其他人的人在顶部看到他们最后的帖子。我使用这个查询作为db select查询,但它有一些问题 有人有什么想法来改进这个查询吗 以下是此查询的重要表:新闻源的Mysql ORDER BY或GROUP BY,mysql,database,select,group-by,sql-order-by,Mysql,Database,Select,Group By,Sql Order By,我想创建一个类似于Facebook新闻源的东西:一个跟踪其他人的人在顶部看到他们最后的帖子。我使用这个查询作为db select查询,但它有一些问题 有人有什么想法来改进这个查询吗 以下是此查询的重要表: ______ | wall | ------------------------------------------------------------------------------------- postID | inserterID | sportID | catID | titl
______
| wall |
-------------------------------------------------------------------------------------
postID | inserterID | sportID | catID | title|insertDate|context|abstraction|editeDate
-------------------------------------------------------------------------------------
|follower|
---------------------
ID | foerID | foingID
---------------------
SELECT wall.postID
, wall.inserterID
, wall.title
, wall.insertDate
, wall.editDate
, wall.context
, user.lastName
, cat.catName
, wall.catID
, pic.picname AS pic
, foerID
FROM wall
JOIN user
ON user.userID = wall.inserterID
JOIN postcategory cat
ON cat.catID = wall.catID
LEFT
JOIN wallpic pic
ON pic.postID = wall.postID
LEFT
JOIN follow
ON follow.foingID = wall.inserterID
WHERE wall.inserterID != 71
GROUP
BY wall.postID
ORDER
BY follow.foerID IN (71) DESC
, wall.insertDate DESC
LIMIT 0,100
你在问什么?它有什么问题意味着什么?改善意味着什么?如果您希望优化查询,那么我们需要带索引的完整模式以及对当前查询的解释。如果它坏了,请解释原因。我想要像facebook newsfeed这样的东西,在这种情况下,改进意味着任何有助于我的东西:,我的查询不会返回预期结果,例如:follower跟踪了两个ID分别为70和2的人,我想返回将这两个inserterID放在其他人顶部的帖子,但它返回了一些与其他人一起插入的其他职位,而不是70和1。我能把事情弄清楚吗?还是应该解释更多?你在滥用MySQL组的扩展。这使得我们和服务器都无法告诉您要做什么。请阅读:@AndySavage请看上面的解释您有一个GROUPBY子句,但没有聚合函数。这不会顺利进行:-