我在这里有一个非常复杂的查询,我试着在这里给你一个关于必要表的概述:
- 角色扮演游戏
- 角色扮演游戏角色
- 角色扮演邮政
- 用户
我们每个 RPG 有 X 个字符,每个字符有 x 个帖子。1 个用户可以拥有 X 个字符,但 1 个字符仅取决于 1 个用户。
我想要的是一个查询,其中我得到了每个 RPG 的最后一篇文章,其中包含关于写这篇文章的用户名、角色和 RPG 本身的信息,以及我们每个 RPG 有多少 RPGPosts(总计)的数字。
这是我到目前为止解决它的程度:
SELECT c.RPGID, c.Name, DateTime, r.Name, u.Username, t.count
FROM dbo.RPGCharacter c inner join
(
SELECT CharacterID,
MAX(DateTime) MaxDate
FROM RPGPost
GROUP BY CharacterID
) MaxDates ON c.RPGCharacterID = MaxDates.CharacterID
INNER JOIN RPGPost p ON MaxDates.CharacterID = p.CharacterID
AND MaxDates.MaxDate = p.DateTime
Inner join RPG r on c.RPGID = r.RPGID
Inner join [User] u on u.UserID = c.OwnerID
inner join (Select RPG.RPGID, Count(*) as Count from RPGPost
inner join RPGCharacter on RPGPost.CharacterID = RPGCharacter.RPGCharacterID
inner join RPG on RPG.RPGID = RPGCharacter.RPGID
where RPGPost.IsDeleted = 0
Group by RPG.RPGID) t on r.RPGID = t.RPGID
Order by DateTime desc
结果:http ://abload.de/image.php?img=16iudw.jpg
这个查询给了我所有我想要的但有一个错误:
1) 它给了我每个角色的最后一篇文章,但我需要每个角色扮演游戏的最后一篇文章