Mysql SQL:限制一个表的结果
我有一个简单的问题:Mysql SQL:限制一个表的结果,mysql,sql,distinct,limit,Mysql,Sql,Distinct,Limit,我有一个简单的问题: SELECT c.nom AS race_name, r.nom_coureur AS player_name, r.prenom_coureur AS player_name_first FROM pourvelobsx.calendrier AS c INNER JOIN pourvelobsx.resultat_autre AS r ON r.identifiant_epreuve = c.identifiant WHE
SELECT
c.nom AS race_name,
r.nom_coureur AS player_name,
r.prenom_coureur AS player_name_first
FROM pourvelobsx.calendrier AS c
INNER JOIN pourvelobsx.resultat_autre AS r
ON r.identifiant_epreuve = c.identifiant
WHERE nom_etape = "final"
ORDER BY c.id DESC
LIMIT 5
查询返回5行:
+------------------+-------------+-------------------+
| race_name | player_name | player_name_first |
+------------------+-------------+-------------------+
| Watashi wa Alex | BARBAS | Yoann |
| Watashi wa Alex | AHLSTRAND | Jonas |
| Watashi wa Alex | ACEVEDO | Janier Alexis |
| Tour de La Baule | CHAVANEL | Sylvain |
| Tour de La Baule | SANCHEZ | Samuel |
+------------------+-------------+-------------------+
我想知道,我如何限制比赛的结果(“日历”表),而不是全局行结果
像这样:
+------------------+-------------+-------------------+
| race_name | player_name | player_name_first |
+------------------+-------------+-------------------+
| Watashi wa Alex | BARBAS | Yoann |
| Watashi wa Alex | AHLSTRAND | Jonas |
| Watashi wa Alex | ACEVEDO | Janier Alexis |
| Tour de La Baule | CHAVANEL | Sylvain |
| Tour de La Baule | SANCHEZ | Samuel |
| Tour de La Groin | HELLO | Calvin |
| Tour de La Groin | ESTEBEZ | Millo |
| Tour de France | SANCHEZ | Samuel |
| Tour de France | SICKED | Alex |
| Tour d'Espagne | VILLIOD | Fred |
| Tour d'Espagne | CRACHER | Jordan |
| Tour d'Espagne | ELBANTI | Maxime |
| Tour d'Espagne | BOKEDRON | Yohan |
+------------------+-------------+-------------------+
所以我只有5场比赛没有限制行数。我尝试了
DISTINCT
,但没有成功。我相信你想要这样的东西
SELECT
c.nom AS race_name,
r.nom_coureur AS player_name,
r.prenom_coureur AS player_name_first
FROM pourvelobsx.calendrier AS c
INNER JOIN pourvelobsx.resultat_autre AS r ON r.identifiant_epreuve = c.identifiant
INNER JOIN
(
SELECT c.nom
FROM pourvelobsx.calendrier AS c
INNER JOIN pourvelobsx.resultat_autre AS r ON r.identifiant_epreuve = c.identifiant
WHERE nom_etape = "final"
GROUP BY c.nom
ORDER BY c.id DESC
LIMIT 5
) t ON t.nom = c.nom
WHERE nom_etape = "final"
那么你想显示所有5场比赛?哪个MySQL版本?(他们不是最近才添加窗口功能吗?)你想要什么输出?看看为什么后期会被否决?Cookie怪物是的Prateik它在邮局里@jarlh,最后一个:)您不能在
WHERE col in
子查询中使用LIMIT
。您需要连接子查询。它工作得很好,谢谢,但是为什么我必须做两个内部连接?@Dinath第一个连接在calendrier
和resultat\u autre
之间,第二个连接在resultat\u autre
和t
子查询之间。附言:不客气:)@RadimBača哦,我明白了!很难。。。那么性能呢?再次感谢:)