PreparedStatement st = null;
ResultSet rs = null;
try {
final Database db = getDatabase();
final String sql = Track.getSelectSql() +
" from ( select l.track_id " +
" from play_log l " +
" order by l.date_played desc ) r " +
" inner join tracks t " +
" on r.track_id = t.id " +
" inner join genres g " +
" on g.id = t.genre_id " +
" inner join artists ar " +
" on ar.id = t.artist_id " +
" inner join albums al " +
" on al.id = t.album_id " +
" group by artistId, artistName, albumId, albumName, albumYear, " +
"trackId, trackName, trackPath, trackNo, genreId, genreName, dateAdded " +
" limit ? ";
st = db.prepare( sql );
st.setInt( 1, total );
rs = st.executeQuery();
return Track.createListFromResultSet( rs );