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

Ruby Discussion :

Uniq sur une relation joins.


Sujet :

Ruby

  1. #1
    Membre du Club
    Femme Profil pro
    Bio-informaticienne
    Inscrit en
    Septembre 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Bio-informaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2009
    Messages : 97
    Points : 54
    Points
    54
    Par défaut Uniq sur une relation joins.
    Voilà j´ai un petit soucis j´ai deux modèles.
    Un modèle Status et un modèle Userfile:

    On a Status qui a une relation:

    et Userfile qui a une relation:

    Je veux créer un scope du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scope.joins(:status).where(:status => {:status => self.data["status"]})
    Mon soucis est le suivant certain fichier ont plusieurs status du coup mon scope contient des doublons... or je souhaiterais avoir une seule entrée par fichier.

    J´ai essayé quelques du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scope.joins(:status).where(:status => {:status => ["status1"]}).uniq
    mais dans ce cas je récupère un array et non pas une Relation

    J´ai aussi essayé ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scope.joins(:status).where(:status => {:status => ["status1"]}).select("DISTINCT userfile_id")
    Dans ce cas je supprime bien mes doublons mais je me retrouve seulement avec les userfile_id.

    Finalement j´ai essayer ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scope.joins(:status).where(:status => {:status => ["status"]}).select("DISTINCT userfiles .*")
    ce qui me retourne bien des Userfiles mais ne me supprime pas les doublons,,, bref comme vous pouvez le constater je tourne en rond !!!

    Un peu d´aide serez la bienvenue.

  2. #2
    Membre du Club
    Femme Profil pro
    Bio-informaticienne
    Inscrit en
    Septembre 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Bio-informaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2009
    Messages : 97
    Points : 54
    Points
    54
    Par défaut
    Bon voici donc ma solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scope.joins(:status).where(:status => {:status => ["status"]})
    qui crée bien le scope que je souhaite mais qui quand je fait un count me donne des duplicats, les fichiers ayant plusieurs "status" sont présent plusieurs fois. Pour avoir le compte correct il me suffit de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @scope.count("distinct userfiles.id")
    Choses très étrange la requête suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    scope.joins(:status).where(:status => {:status => ["status"]}).select("distinct userfiles.*")
      Userfile Load (9.0ms)  SELECT distinct userfiles.* FROM `userfiles` INNER JOIN `status` ON `status`.`userfile_id` = `userfiles`.`id` WHERE `status`.`status` IN ('status')
    me donne le résultat sans les duplicats, mais dès que j'ajoute le compte sur cette requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    scope.joins(:status).where(:status => {:status => ["status"]}).select("distinct userfiles.*").count
       (0.7ms)  SELECT COUNT(*) FROM `userfiles` INNER JOIN `status` ON `status`.`userfile_id` = `userfiles`.`id` WHERE `status`.`status` IN ('status')
    le distinct est ignoré.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/04/2009, 20h50
  2. [CONCEPTION] probleme sur une relation reflexive
    Par bambi98 dans le forum Modélisation
    Réponses: 5
    Dernier message: 27/04/2007, 11h34
  3. souci sur une relation
    Par Eh_manu dans le forum Access
    Réponses: 22
    Dernier message: 05/06/2006, 10h06
  4. Question sur une relation ternaire dans un MCD
    Par sylsau dans le forum Schéma
    Réponses: 5
    Dernier message: 05/03/2006, 20h00
  5. 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

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