我需要获得基于足球运动员排名的前三名前锋,前三名中场球员,前四名后卫球员

我有单独的职位表

位置表的结构

PositionID和PositionName

1 Tor(意味着守门员)

2 Abwehr(指防御者)

3米特尔费尔德(意味着中场)

4 Angriff(指向前)

我有Soccerplayers Table,那里有Name(玩家名称),PositionId,TScore(玩家分数)

我需要基于TScore的每个位置的前3名玩家

任何查询建议?

最佳答案

好吧,您可以尝试以下查询集:

(SELECT Name, PositionId, TScore FROM Soccerplayers WHERE PositionID = 1 ORDER BY TScore LIMIT 3)
UNION
(SELECT Name, PositionId, TScore FROM Soccerplayers WHERE PositionID = 2 ORDER BY TScore LIMIT 4)
UNION
(SELECT Name, PositionId, TScore FROM Soccerplayers WHERE PositionID = 3 ORDER BY TScore LIMIT 3)

10-05 19:58