Mysql 从多个表中检索,同时只允许一列的不同结果
我试图从三个表中进行选择,区域、玩家和区域玩家。并按地区名称排序结果,然后按球员最后一次出现在该地区的时间排序。我真的很想这样,我只返回一个结果,每个地区的球员谁没有看到最长的 SQL 一些表格数据Mysql 从多个表中检索,同时只允许一列的不同结果,mysql,sql,Mysql,Sql,我试图从三个表中进行选择,区域、玩家和区域玩家。并按地区名称排序结果,然后按球员最后一次出现在该地区的时间排序。我真的很想这样,我只返回一个结果,每个地区的球员谁没有看到最长的 SQL 一些表格数据 RegionName key Name 1 regionone 2 regiontwo 3 regionthree 4 regionfouor 5 regionfive Players Key Name Se
RegionName
key Name
1 regionone
2 regiontwo
3 regionthree
4 regionfouor
5 regionfive
Players
Key Name Seen
1 jack 2014-03-21 12:43:46
2 joe 2014-03-26 12:43:46
3 bob 2014-03-20 12:43:46
4 bill 2014-03-19 12:43:46
5 dave 2014-03-17 12:43:46
6 tina 2014-03-28 12:43:46
7 tony 2014-03-29 12:43:46
8 george 2014-03-15 12:43:46
9 sam 2014-03-18 12:43:46
10 frank 2014-03-18 12:43:46
RegionPlayer
key Regionkey PlayerKey
1 1 1
2 1 4
3 1 5
4 2 1
5 2 4
6 3 6
7 3 7
8 4 1
9 4 8
10 4 7
11 5 3
我接受你的陈述,首先是分组前的部分
SELECT RegionName.*, RegionPlayer.*, Players.*
FROM RegionName
JOIN RegionPlayer
ON RegionPlayer.Regionkey = RegionName.Key
JOIN Players
ON Players.Key = RegionPlayer.Playerkey
加
WHERE Players.Seen = (
SELECT MIN(Players2.Seen)
FROM RegionName as RegionName2
JOIN RegionPlayer as RegionPlayer2
ON RegionPlayer2.Regionkey = RegionName2.Key
JOIN Players as Players2
ON Players2.Key = RegionPlayer2.Playerkey
WHERE RegionName2.Key = RegionName.Key
)
然后根据你的陈述分组
GROUP BY RegionName.Name, Players.Seen DESC
子选择返回当前地区玩家看到的最短日期 你这个查询到底有什么问题?我想我可能遗漏了什么,但我会出错,因为RegionPlayer2不存在。你是对的。我修正了答案中的陈述。”RegionPlayer2'应该是“RegionPlayer作为RegionPlayer2”。subselect中的其他两个表也是如此。
GROUP BY RegionName.Name, Players.Seen DESC