Mysql 把要求缩短一点?
我只是想知道是否有可能使该请求更短,因为我想用该请求创建一个视图Mysql 把要求缩短一点?,mysql,sql,database,Mysql,Sql,Database,我只是想知道是否有可能使该请求更短,因为我想用该请求创建一个视图 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
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
如果您使用的是MySQL 8.0,那么可以使用窗口函数row_number
不使用UNION**您使用的是哪个版本的mysql?请参阅不使用UNION**您使用的是哪个版本的mysql?请参阅
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