缩短请求?

bq9c1y66  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(290)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

11个月前关门了。
改进这个问题
我只是想知道是否有可能使该请求更简短,因为我想用该请求创建一个视图

SELECT distinct joueurs.nom, joueurs.prenom, joueurs.numero,joueurs.moyenne, equipes.nom
FROM joueurs
JOIN equipes ON equipes.equipeId = joueurs.equipeId
WHERE joueurs.equipeid = 1 
ORDER BY joueurs.moyenne DESC
LIMIT 3;

SELECT distinct joueurs.nom, joueurs.prenom, joueurs.numero,joueurs.moyenne, equipes.nom
FROM joueurs
JOIN equipes ON equipes.equipeId = joueurs.equipeId
WHERE joueurs.equipeid = 2
ORDER BY joueurs.moyenne DESC
LIMIT 3;

SELECT distinct joueurs.nom, joueurs.prenom, joueurs.numero,joueurs.moyenne, equipes.nom
FROM joueurs
JOIN equipes ON equipes.equipeId = joueurs.equipeId
WHERE joueurs.equipeid = 3
ORDER BY joueurs.moyenne DESC
LIMIT 3;
kse8i1jr

kse8i1jr1#

如果您使用的是mysql 8.0,那么可以使用window函数 row_number ```
SELECT
distinct joueurs.nom,
joueurs.prenom,
joueurs.numero,
joueurs.moyenne,
equipes.nom
from
(
SELECT
distinct joueurs.nom,
joueurs.prenom,
joueurs.numero,
joueurs.moyenne,
equipes.nom,
row_number() over (partition by joueurs.equipeid order by joueurs.moyenne DESC) as rnk
FROM joueurs
JOIN equipes
ON equipes.equipeId = joueurs.equipeId
WHERE joueurs.equipeid IN (1, 2, 3)
) val
where rnk <= 3

相关问题