如何选择每个Title的第一个名字?

问题描述 投票:0回答:1

我使用的是Pgadmin(mysql)。我必须打印一个名字的日期(第一年),所以我的代码给我这个。

 "El padrino";1972
 "El padrino";1972
 "El padrino";1972
 "El resplandor";1980
 "El resplandor";1981
 "Buenos muchachos";1990
 "Buenos muchachos";1990
 "Forrest Gump";1994
 "Forrest Gump";1994
 "Tiempos violentos";1994
 "Tiempos violentos";1995
 "Los 7 pecados capitales";1995

我需要取每部电影的名字与最古老的年份。像这样。

 "El padrino";1972
 "El resplandor";1980
 "Buenos muchachos";1990
 "Forrest Gump";1994
 "Tiempos violentos";1994
 "Los 7 pecados capitales";1995

我正在尝试用下面的代码。

SELECT min(titulo), MIN(EXTRACT(YEAR from f.fecha))
FROM pelicula p, f_estreno_pais f 
WHERE p.id_pelicula = f.id_pelicula
GROUP BY p.id_pelicula, f.fecha
ORDER BY f.fecha;

但是,我不需要放弃这个表!我必须做一个选择,只有第一次的标题,它是显示。

mysql join select min pgadmin
1个回答
0
投票

我认为你只是想把电影年份从 group by 子句。

SELECT min(p.titulo), MIN(EXTRACT(YEAR from f.fecha)) min_fecha
FROM pelicula p
INNER JOIN f_estreno_pais f ON p.id_pelicula = f.id_pelicula
GROUP BY p.id_pelicula
ORDER BY min_fecha;

每部电影只给你一排,最低电影年份。

侧面说明。

  • 始终使用标准的显式连接(使用 ON 关键字)而不是隐式连接(在 FROM 子句);这种几十年前的老语法不应该在新代码中使用。

  • 在多表查询中,总是在所有列前加上它们所属的表--这样可以使查询清晰明了,而且更容易执行。

© www.soinside.com 2019 - 2024. All rights reserved.