Meridion wrote: 
> I am now trying to use the "Database Query" plugin to create a more
> detailed CSV export. But I am no SQL expert at all...
> 
> Is there a SQL expert, who can help me writing a SQL query which outputs
> track data (album title, artist, album artist, track title, track
> number, track path/file, trackstat information) to a CSV file? Maybe it
> would make sense to just export tracks wih trackstat data available.
> 
Install the Database Query version I published a few minutes ago and
then setup a free form query using an SQL like this:

Code:
--------------------
    
  select albums.title 'album', group_concat(artists.name,';') 'artists', 
group_concat(albumartists.name,';') 'album artists', 
group_concat(composers.name,';') 'composers', group_concat(conductors.name,';') 
'conductors', tracks.title, tracks.disc, tracks.tracknum, path(tracks.url) as 
'path', track_statistics.rating, track_statistics.playcount
        from tracks
        left join contributor_track as cta on cta.track=tracks.id and cta.role 
in (1,6,4)
        left join contributors as artists on artists.id=cta.contributor         
        left join contributor_track as ctaa on ctaa.track=tracks.id and 
ctaa.role in (5)
        left join contributors as albumartists on 
albumartists.id=ctaa.contributor 
        left join contributor_track as ctcd on ctcd.track=tracks.id and 
ctcd.role in (3)
        left join contributors as conductors on conductors.id=ctcd.contributor 
        left join contributor_track as ctcp on ctcp.track=tracks.id and 
ctcp.role in (2)
        left join contributors as composers on composers.id=ctcp.contributor 
        left join track_statistics on tracks.url=track_statistics.url
        left join albums on albums.id=tracks.album
        where tracks.audio=1
  group by tracks.id
  order by albums.title,tracks.disc,tracks.tracknum
  
--------------------


If you only want rated tracks, you would change it to something like
this (different where directive):

Code:
--------------------
    
  select albums.title 'album', group_concat(artists.name,';') 'artists', 
group_concat(albumartists.name,';') 'album artists', 
group_concat(composers.name,';') 'composers', group_concat(conductors.name,';') 
'conductors', tracks.title, tracks.disc, tracks.tracknum, path(tracks.url) as 
'path', track_statistics.rating, track_statistics.playcount
        from tracks
        left join contributor_track as cta on cta.track=tracks.id and cta.role 
in (1,6,4)
        left join contributors as artists on artists.id=cta.contributor         
        left join contributor_track as ctaa on ctaa.track=tracks.id and 
ctaa.role in (5)
        left join contributors as albumartists on 
albumartists.id=ctaa.contributor 
        left join contributor_track as ctcd on ctcd.track=tracks.id and 
ctcd.role in (3)
        left join contributors as conductors on conductors.id=ctcd.contributor 
        left join contributor_track as ctcp on ctcp.track=tracks.id and 
ctcp.role in (2)
        left join contributors as composers on composers.id=ctcp.contributor 
        left join track_statistics on tracks.url=track_statistics.url
        left join albums on albums.id=tracks.album
        where tracks.audio=1 and track_statistics.rating>0
  group by tracks.id
  order by albums.title,tracks.disc,tracks.tracknum
  
--------------------


Or if you want tracks with TrackStat information like playcounts to be
included even if the track isn't rated, you would use something like
this:

Code:
--------------------
    
  select albums.title 'album', group_concat(artists.name,';') 'artists', 
group_concat(albumartists.name,';') 'album artists', 
group_concat(composers.name,';') 'composers', group_concat(conductors.name,';') 
'conductors', tracks.title, tracks.disc, tracks.tracknum, path(tracks.url) as 
'path', track_statistics.rating, track_statistics.playcount
        from tracks
        left join contributor_track as cta on cta.track=tracks.id and cta.role 
in (1,6,4)
        left join contributors as artists on artists.id=cta.contributor         
        left join contributor_track as ctaa on ctaa.track=tracks.id and 
ctaa.role in (5)
        left join contributors as albumartists on 
albumartists.id=ctaa.contributor 
        left join contributor_track as ctcd on ctcd.track=tracks.id and 
ctcd.role in (3)
        left join contributors as conductors on conductors.id=ctcd.contributor 
        left join contributor_track as ctcp on ctcp.track=tracks.id and 
ctcp.role in (2)
        left join contributors as composers on composers.id=ctcp.contributor 
        left join track_statistics on tracks.url=track_statistics.url
        left join albums on albums.id=tracks.album
        where tracks.audio=1 and (track_statistics.rating>0 or 
track_statistics.playcount>0)
  group by tracks.id
  order by albums.title,tracks.disc,tracks.tracknum
  
--------------------



Erland Isaksson ('My homepage' (http://erland.isaksson.info))
(Developer of 'many plugins/applets (both free and commercial)'
(http://wiki.slimdevices.com/index.php/User:Erland). 
If you like to encourage future presence on this forum and/or third
party plugin/applet development, 'consider purchasing some plugins'
(http://license.isaksson.info))

*Interested in the future of music streaming ? 'ickStream -  A world of
music at your fingertips'
(http://forums.slimdevices.com/showthread.php?98467-Pre-Announcement-ickStream&p=743516)*.
------------------------------------------------------------------------
erland's Profile: http://forums.slimdevices.com/member.php?userid=3124
View this thread: http://forums.slimdevices.com/showthread.php?t=20533

_______________________________________________
plugins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/plugins

Reply via email to