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 :

SELECT UNION,. . . Comment faire pour selectionner plusieurs champs et les réordonner


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 44
    Points
    44
    Par défaut SELECT UNION,. . . Comment faire pour selectionner plusieurs champs et les réordonner
    Bonsoir,

    J'ai deux tables :
    listeCours
    #id #niv #voie #type
    1 1 1 1
    2 1 2 1
    3 1 1 1
    4 1 5 1
    5 1 4 1
    ...

    coursDetailJoueur
    #id #idMembre #idCours #value
    1 4 2 60
    2 4 5 54
    3 6 1 34
    4 5 1 10
    ....

    Ce que je veux faire, c'est prendre tous les "id" de la table "listeCours" qui correspondent à "niv=1 AND voie=1 AND type=1" ainsi que tous les "idCours", "value" de la table "coursDetailJoueur" qui correspondent à "idMembre=4".
    Le champ "idCours" correspond au champ "id" de la table "listeCours", donc il ne me faut pas de valeurs en double.
    Si "value" n'existe pas, ce qui est le cas pour la table "listeCours", je souhaiterais avoir 0.
    Puis ensuite réorganiser par "voie ASC, niv ASC". Cette réorganisation est importante car dans la table "coursDetailJoueur" "niv" et "voie" ne sont pas forcément égal à 1.


    Pour l'exemple, voila ce que je devrais arriver a obtenir
    #idCours #value
    1 0
    2 60
    3 0
    5 54

    J'ai tenté cette requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT D.idCours
    FROM `coursDetailJoueur` AS D
    WHERE D.idMembre=1
    UNION DISTINCT
    SELECT L.id AS idCours
    FROM listeCours AS L
    WHERE L.voie=1 AND L.type=1
    Mais le problème, je ne peux pas sélectionner mon champ "value"

    Voila, si quelqu'un pouvait m'aider à m'en sortir, ca serait vraiment sympa.
    Mon petit monde ! www.worldofgz.com

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 014
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 014
    Points : 23 702
    Points
    23 702
    Par défaut
    Bonjour,

    A partir de l'exemple donné, voici la requête qui renvoit le résultat attendu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select lc.id, coalesce(cdj.value, 0) as value
    from listeCours lc
    left join coursDetailJoueur cdj on lc.id = cdj.idCours and cdj.idMembre = 4
    where (lc.niv = 1 and lc.voie = 1 and lc.type = 1)
    or (cdj.idMembre = 4)
    order by lc.id, value
    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 60
    Points : 44
    Points
    44
    Par défaut
    A oui, merci beaucoup, j'étais vraiment loin du compte !
    Mon petit monde ! www.worldofgz.com

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 18/04/2011, 15h53
  2. Comment faire pour utiliser plusieurs fonctions logiques dans une condition ?
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 04/11/2010, 11h37
  3. Réponses: 1
    Dernier message: 29/09/2009, 15h00
  4. Réponses: 5
    Dernier message: 12/06/2008, 22h49
  5. comment faire pour que plusieurs user utilise mem macro?
    Par megapacman dans le forum Access
    Réponses: 4
    Dernier message: 27/03/2006, 16h55

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