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 :

Grosse req optimisé avec un défaut


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 46
    Par défaut Grosse req optimisé avec un défaut
    Bonjour,

    Pour mon site, j'ai développer une requête SQL que j'ai optimisé au maximum de mes capacité, la voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT ddl.date,ddl.id,ddl.by,detail_anime.titre,detail_anime.page,Max(ddl.episode) AS nb
    FROM ddl
    LEFT JOIN detail_anime
    ON detail_anime.id=ddl.cat 
    GROUP BY ddl.cat ORDER BY MAX(ddl.date) DESC
     LIMIT 0,120
    Le problème vient de ddl.by, il me ressort du group un utilisateur au hazar, hors je voudrais avoir celui qui est lié au MAX(episode) :/

    Je ne sais pas si c'est clair, toutefois je vous remerci par avance pour toute aide

  2. #2
    Membre très actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Par défaut
    Le problème est il faut ajouter 'cat' au selection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT ddl.date, ddl.cat, ddl.id,ddl.by, detail_anime.titre,   ddetail_anime.page,Max(ddl.episode) AS nb
    FROM ddl
    LEFT JOIN detail_anime
    ON detail_anime.id=ddl.cat 
    GROUP BY ddl.cat ORDER BY MAX(ddl.date) DESC
     LIMIT 0,120

  3. #3
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    Je précise que ce comportement (qui présente des avantages et des inconvénients) n'existe que sous MySQL. N'importe quel autre SGBD, tout comme la norme, refuserait ta requête.

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Antoun Voir le message
    Je précise que ce comportement (qui présente des avantages et des inconvénients) n'existe que sous MySQL. N'importe quel autre SGBD, tout comme la norme, refuserait ta requête.
    Et l'inconvénient est justement qu'il prend la première valeur trouvée parmi les lignes entrant dans le GROUP BY pour toutes les colonnes sans calcul qui n'y sont pas incluses.
    Donc ici, même en ajoutant ddl.cat, il est fort possible que le résultat soit encore aléatoire.

    J'ai du mal à voir la signification des deux tables et ce que vous cherchez exactement à obtenir. La structure exacte des tables nous aiderait également beaucoup à vous donner la bonne requête.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. construction req select avec id unique
    Par radahm dans le forum PL/SQL
    Réponses: 2
    Dernier message: 21/10/2009, 19h03
  2. req. SQL avec pourcentage
    Par maxine dans le forum Langage SQL
    Réponses: 9
    Dernier message: 25/06/2009, 16h47
  3. Ouvrir/afficher un fichier avec son logiciel par défaut
    Par Alain P. dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 20/06/2009, 18h47
  4. req sql avec intervalle de date
    Par ahmedmido dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/12/2008, 14h49
  5. Bouton par défaut avec MessageDlg ?
    Par MaTHieU_ dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/04/2005, 19h28

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