IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

aide sur une requête


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Fabouney
    Invité(e)
    Par défaut aide sur une requête
    bonjour à tous et à toute,

    voila, j'ai 3 tables : artiste, song, song_file

    un artiste à 0 ou plusieurs "song"
    un "song" fait référence à aucun ou plusieur "song_file"

    les relations sont simples.
    donc pour commencer je fait une jointure sur les 3, pour avoir un mix d'infos sur l'artiste,e les fichiers, et la chansons en elle même.

    les song_file ont 2 champs important track_type (int) et chorus(int)
    mon but etant de lister tout les "song_file" ayant le "track_type" ET le "chorus" le plus élevé.
    je ne sais pas trop comment m'y prendre, j'avais commencer a faire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT *
    FROM song_file sf, song s, artist art
    WHERE sf.song_id = s.id
    AND s.artist_id = art.id
    AND track_type = ( 
    SELECT max( track_type )
    FROM song_file
    WHERE  id = s.id) 
    AND chorus = ( 
    SELECT max( chorus )
    FROM song_file
    WHERE id = s.id)
    je repete que un "song" peut avoir plusieurs "song_file", exemple :

    song_id 500
    \_ song_file_id 456 -> track_type 1 / chorus 1
    \_ song_file_id 600 -> track_type 3 / chorus 1
    \_ song_file_id 789 -> track_type 3 / chorus 2

    donc la avec ma requête je récupére le son_file_id 600 et le 789.
    vous aurez compris que le 2eme critère de selection ce basant sur le chorus ne fonctionne pas.

    merci pour votre aide

  2. #2
    Fabouney
    Invité(e)
    Par défaut
    Si quelqu'un peux éventuellement proposer le début d'une solution avec un group by par exemple, ce serait bien, car on vient de me dire que cette requête va être executé sur un server mysql 4 donc au revoir les requêtes imbriquées ! :'(

  3. #3
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Salut,

    Sur un serveur 4.combien ? Les sous requêtes sont gérées par MySQL 4.1...

    Par ailleurs "tous les song_file ayant le track_type ET le chorus le plus élevé" est un peu ambigü.

    Est-ce que ça veut dire "l'ensemble des song_file ayant le track_type le plus élevé plus l'ensemble des song_file ayant le chorus le plus élevé" ?
    Ou ... "parmi les song_file ayant le track_type le plus élevé, ceux qui ont le chorus le plus élevé" ? Ou l'inverse... ?

  4. #4
    Fabouney
    Invité(e)
    Par défaut
    en fait si tu veux je doit récupéré les song_file les plus pertinent.
    je doit récupérer le "song_file" d'un "song" qui a le track_type le plus élévé MAIS AUSSI le chorus le plus élévé.

    car si j'ai 2 "song_file" qui on le meme track_type, ils faut que je tranche par rapport au chorus, donc il doit obligatoirement vérifié cette condition, d'où le ET logique.




    P.S : c'est mysql 4.0.24 sur le serveur ..

Discussions similaires

  1. [SQL] Besoin d'aide sur une requête
    Par Angath dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/01/2006, 16h26
  2. Réponses: 1
    Dernier message: 03/08/2005, 11h41
  3. Besoin d'aide sur une requête (JOIN + COUNT ?)
    Par PanzerKunst dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/06/2005, 10h29
  4. Aide sur une requête
    Par TshAw dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/02/2005, 11h42
  5. Aide sur une requête (Group By...??)
    Par Cocolapin dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/12/2004, 10h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo