我有一个简单的 SQL 查询,可以为我提供所有评论过此类图像的用户的信息......
SELECT user.id, user.userName, user.displayName, user.currentDefault, user.discipline
FROM user
INNER JOIN imageComment ON user.id = imageComment.commentAuthorId
WHERE imageComment.imageAlbumJunctionId = 37
GROUP BY user.id
LIMIT 2
我LIMIT 2
在那里有,因为我知道这张图片只有两条评论。而且我GROUP BY user.id
在那里,因为我只想显示有关用户的信息一次,即使他们多次评论。
因此,可以说“迈克”对一张照片发表了两次评论。我的问题是,这个查询...
- 因为 , 只搜索 2 条评论
LIMIT
,然后执行GROUP BY user.id
- 执行
GROUP BY user.id
然后在整个表中搜索第二个唯一用户
我希望这个查询执行#1,因为如果执行#2,它将导致它搜索整个表来寻找第二个用户,而“Mike”实际上是那个同时做了这两个评论的用户。我确实尝试了 anEXPLAIN
但我并不真正理解它,因为无论是否存在 aGROUP BY
或,它都会给出相同的输出LIMIT
。感谢您的阅读。