如何select每个Title的名字?

How to select the first name of each Title?

我正在使用 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;

还有,我不用滴了table!我只需要在第一次显示标题时制作一个 select。

我认为您只想从 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 子句中使用逗号);几十年前的旧语法不应在新代码中使用

  • 在多 table 查询中,始终在所有列前加上它们所属的 table - 这使得查询明确且更易于理解