我只是想知道是否可以使该请求更短,因为我想使用该请求创建一个视图
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;
如果您使用的是MySQL 8.0,则可以使用窗口功能 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句