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

Langage SQL Discussion :

[MySQL 5.0] RAND() inefficace quand utilisation de GROUP BY


Sujet :

Langage SQL

Vue hybride

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 39
    Par défaut [MySQL 5.0] RAND() inefficace quand utilisation de GROUP BY
    Bonjour à tous,

    Je rencontre actuellement un petit problème avec une requete utilisant ORDER BY RAND() GROUP BY.

    Voici le type de requete que je souhaite réaliser :

    SELECT a.id_a, b.id_b
    FROM table_A a, table_B b
    GROUP BY a.id_a
    ORDER BY RAND()

    Le résultat voulu : toutes les valeurs distinctes de id_a, auxquelles j'associe à chaque ligne, un id_b présent dans la table "table_B", sélectionné aléatoirement.

  2. #2
    Xo
    Xo est déconnecté
    Membre Expert
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Par défaut
    Salut,

    Si RAND et GROUP BY ne sont pas compatible, essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT id_a, id_b
      FROM (SELECT a.id_a, b.id_b 
              FROM table_A a, table_B b 
             GROUP BY a.id_a)
     ORDER BY RAND();
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 39
    Par défaut
    Merci mille fois Xo, c'est exactement ce que je recherchais ( à un petit détail près, la requête recherchée était plus du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT id_a, id_b
      FROM (SELECT a.id_a, b.id_b 
              FROM table_A a, table_B b 
              ORDER BY RAND())
     GROUP BY id_a;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL]Recuperer la liste des tables utilisées...
    Par zaventem dans le forum Requêtes
    Réponses: 4
    Dernier message: 21/03/2006, 02h36
  2. Requete MySQL avec un Rand sur une table
    Par tom06440 dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/01/2006, 17h37
  3. Réponses: 10
    Dernier message: 08/02/2005, 10h52
  4. Écriture dans un DBgrid quand utilise un query comme dataset
    Par dcayou dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/07/2004, 22h22
  5. [Procédure Stocké] Quand utiliser ?
    Par touhami dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/03/2004, 09h09

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