Bonsoir,
Je suis en train de faire l'interface graphique d'un projet en Database, et la dernière partie dudit projet est l'exécution de requêtes pour le moins assez complexes. Un exemple de requête est :
Lister les 10 artistes qui ont le plus grand nombre de tracks apparaissant sur des compilations. Une compilation est un média (CD, Vinyl, Digital, etc) qui contient des tracks associés à plusieurs artistes (en gros pas un album).
Mon code SQL pour cette requête est le suivant :
create index track_medium on track(IDMedium)
create index artistind_track on artist_track(IDTrack)
create temporary table compilation(
select IDMedium
from artist_track join track using(IDTrack)
group by IDMedium
having count(distinct IDArtist)>1);
create temporary table temp_tracks(
select distinct IDTrack
from compilation join track using(IDMedium));
select IDArtist, ArtistName
from temp_tracks join artist_track using(IDTrack) join artist using(IDArtist)
group by IDArtist
order by count(*) desc
limit 10
Ma question est la suivante :
What da F ? Plus sérieusement, j'ai déjà affiché le résultat d'une requête (un simple select *) dans une JTable, mais là je ne sais pas comment faire pour une bonne grosse requête SQL comme celle-là, sachant que j'ai une autre quinzaine qui attend d'être traitée de la même manière que celle-ci à peu près.
N'hésitez pas si besoin de plus d'infos concernant la structure de la BD ou autre.
Une bonne soirée à tous.
Partager