【发布时间】:2012-11-27 08:34:36
【问题描述】:
我是新来的,对于我整天都在努力解决的问题,我非常感谢一些帮助。
考虑这两个表:
albums (pkey: id) years (pkey: album_id, year)
id genre_id album_id year
--- -------- -------- ----
450 1 450 2000
451 1 450 2001
452 1 450 2002
453 2 451 2005
454 3 451 2012
452 1998
这可能看起来很奇怪,但请假设一张专辑可以关联多年。
我想选择流派 1 中的所有专辑,按每张专辑的最新年份排序。 (假设可以按年份排序)。
所以,我想要这个结果:
id year
----- ----
451 2012
450 2002
452 1998
这就是我所在的地方......
显然,我需要在订购结果之前加入表格:
SELECT id, year
FROM albums INNER JOIN years ON albums.id = years.album_id
WHERE genre_id = 1
ORDER BY year;
这会选择类型 1 中每张专辑的每年记录,而不是类型 1 中每张专辑的最新年份记录。
不知何故,我需要像这样合并一个子查询,以将加入专辑表的年份限制为该专辑的最新年份,然后再次排序:
SELECT year FROM years WHERE album_id = ??? ORDER BY year DESC LIMIT 1;
【问题讨论】:
标签: sql database postgresql join