Getting the "latest" related record from a SQL DB

Denny 2014 at denny.me
Thu Oct 9 17:53:03 BST 2014


On Thu, 2014-10-09 at 13:28 +0100, Andrew Beverley wrote:
> what if I want to fetch an artist's details and his latest album? I
> can select the artist from the artists table and then join the albums
> table. But to get the latest album I'd have to use a max function (say
> on the album's date), with which it isn't possible to get the related
> fields in the same row.
> 
> I see 2 ways of solving this:
> 
> - Run multiple queries to get the relevant album's ID (if even possible)
> and then retrieve its row in entirety.
> 
> - Have a reference from the artist table back to the album table,
> specifying which is the latest album, which I update each time the
> albums table is updated.
> 
> Neither seem particularly tidy to me, so am I missing something
> completely obvious?

My first solution to this problem would probably have been to get the
joined rows, then 'order by release_date desc' and grab the first row,
discarding the rest.

Probably gets inefficient if your rows contain big stuff.




More information about the london.pm mailing list