这里我有一个名为"Pais"(西班牙语中的国家)的表,Id_Pais是主键,Continent_FK(Continente代表大陆)是将每个国家与大陆联系起来的外键,在下面你可以看到我的数据
我想做的是一张表,按大洲显示一个国家的最大扩展名和具有最大扩展名的国家的名称,我已经用这些代码完成了第一部分:
SELECT MAX(Extension) FROM Pais GROUP BY Continente_FK;
该代码向我显示了与每个大陆相关的最大扩展,我尝试了其他代码,但它只向我显示所有国家的最大扩展量,而不是每个大陆的最大扩展(所有国家中的最大扩展):
SELECT C.Id_Continente, P.Nombre, P.Extension,C.Nombre
FROM Pais P RIGHT OUTER JOIN Continente C ON C.Id_Continente=P.Continente_FK
WHERE P.Extension=(SELECT MAX(Extension) FROM Pais)
GROUP BY C.Id_Continente;
"Nombre"是指"名称"
我真的不知道如何告诉MySQL"给出"与最大扩展名相关的名称,请帮忙。
谢谢!
子查询中缺少一个条件:
SELECT C.Id_Continente, P.Nombre, P.Extension,C.Nombre
FROM Pais P RIGHT OUTER JOIN Continente C
ON C.Id_Continente=P.Continente_FK
WHERE P.Extension=(SELECT MAX(Extension) FROM Pais P2
WHERE P2.Continente_FK = C.Id_Continente)
GROUP BY C.Id_Continente;
我看到的唯一问题是,如果你有两个来自同一大陆的国家有相同的扩展(这是不可能的)。每个大洲你总是会得到一个结果。