SQL查询我无法弄清楚

时间:2013-10-18 08:08:40

标签: mysql sql

我有桌子:

contest_images {contestID, imageID}
image {ID, userID}
user {ID}

(它们包含的信息比这些更多,但这就是我们所需要的)

到目前为止我的查询:

SELECT imageID, userID FROM contest_images
JOIN image ON contest_images.imageID = image.ID 
JOIN user ON user.ID = image.userID
ORDER BY contest_images.imageID  DESC

contest_images可以包含来自一个用户的多个图像(预期)

我想检索所有用户添加的x最新版本。 (所以我可以限制用户一次只在比赛中有一张图片)

我还尝试制作一个显示{contestID,imageID,userID}的视图。

提前致谢

3 个答案:

答案 0 :(得分:3)

试试这个,

SELECT MAX(imageID), userID FROM contest_images
JOIN image ON contest_images.imageID = image.ID 
JOIN user ON user.ID = image.userID
GROUP BY image.userID

答案 1 :(得分:2)

要一次限制一个图像/最新图像,您可以使用Top运算符:

SELECT top 1 imageID, userID FROM contest_images
JOIN [image] ON contest_images.imageID = [image].ID 
JOIN [user] ON [user].ID = image.userID
ORDER BY contest_images.imageID  DESC 

答案 2 :(得分:1)

非常感谢你们! :)

我去了

SELECT contestID, MAX(imageID), userID FROM contest_images
JOIN image ON contest_images.imageID = image.ID 
JOIN user ON user.ID = image.userID
GROUP BY image.userID

因此,竞争ID将在最后的WHERE子句中指定:)

但是非常感谢你们两个人:P(我真的被困在这个...... :()