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 :

question sur ORDER BY


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Points : 94
    Points
    94
    Par défaut question sur ORDER BY
    Bonjour,

    voila ma requette
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DISTINCT CONCAT(v.Nom_Ved,', ',v.Prenom_ved) as Vedette,  vc.Collectivite FROM voir LEFT JOIN vedettes v ON voir.Type_Ved = 1 AND v.ID_Ved = voir.ID_Ved2 LEFT JOIN ved_col vc ON voir.Type_Ved = 2 AND vc.ID_VCol = voir.ID_Ved2  ORDER BY Vedette,Collectivite LIMIT 0,20
    J'aimerai non pas que le tri se fasse sur les vedette puis les collectivite comme présentée mais qu'il y ait en quelques sorte une fusion des vedettes et des collectivité pour un tri alphabétique des deux champs.

    Comment est ce que je pourrais faire pour obtenir ce résultat?
    merci de votre aide

  2. #2
    Membre expérimenté
    Avatar de Adjanakis
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Avril 2004
    Messages : 739
    Points : 1 351
    Points
    1 351
    Par défaut
    Bonjour,

    Tu peux essayer quelque chose dans ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT DISTINCT CONCAT(v.Nom_Ved,', ',v.Prenom_ved) as Vedette,  vc.Collectivite FROM voir LEFT JOIN vedettes v ON voir.Type_Ved = 1 AND v.ID_Ved = voir.ID_Ved2 LEFT JOIN ved_col vc ON voir.Type_Ved = 2 AND vc.ID_VCol = voir.ID_Ved2  
    ORDER BY IF(Vedette<Collectivite,Vedette,Collectivite) LIMIT 0,20

  3. #3
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Points : 94
    Points
    94
    Par défaut
    ça ne marche pas

    quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT DISTINCT CONCAT(v.Nom_Ved,', ',v.Prenom_ved) as Vedette,  vc.Collectivite FROM voir LEFT JOIN vedettes v ON voir.Type_Ved = 1 AND v.ID_Ved = voir.ID_Ved2 LEFT JOIN ved_col vc ON voir.Type_Ved = 2 AND vc.ID_VCol = voir.ID_Ved2  
    ORDER BY IF(Vedette<Collectivite,Vedette,Collectivite) LIMIT 0,20
    j'ai le message d'erreur suinvant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #1054 - Unknown column 'Vedette' in 'order clause'
    et lorsque je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT DISTINCT CONCAT( v.Nom_Ved, ', ', v.Prenom_ved ) AS Vedette, vc.Collectivite
    FROM voir
    LEFT JOIN vedettes v ON voir.Type_Ved =1
    AND v.ID_Ved = voir.ID_Ved2
    LEFT JOIN ved_col vc ON voir.Type_Ved =2
    AND vc.ID_VCol = voir.ID_Ved2
    ORDER BY IF (
    CONCAT( v.Nom_Ved, ', ', v.Prenom_ved ) < Collectivite, CONCAT( v.Nom_Ved, ', ', v.Prenom_ved ) , Collectivite
    )
    LIMIT 0 , 20
    le tri se fait par vedette puis par collectivite

  4. #4
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Et si tu essayais ceci?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    (...)
    ORDER BY 
      IF(
       STRCMP( CONCAT(v.Nom_Ved, ', ', v.Prenom_ved), Collectivite) <= 0,
       CONCAT( v.Nom_Ved, ', ', v.Prenom_ved ),
       Collectivite
      )

  5. #5
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Points : 94
    Points
    94
    Par défaut
    ça me fait toujours le même résultat
    cad
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Vedette                               Collective
    Aubinais, Marie                      NULL 
    Balzac (de), Honoré                   NULL 
    Bach, Jean-Sébastien                   NULL 
    Benzoni, Juliette                     NULL 
    Maupassant (de), Guy                  NULL 
    Baatsch, Henri-Alexis                 NULL 
    NULL                                 Collectif du développement français en php 
    NULL                                 Oasis 
    NULL                                 Official congres

  6. #6
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Je crois que j'ai enfin compris ce que tu veux, essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY CONCAT(Vedette, Collectivite)

  7. #7
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Ah ben c'est sûr, on comprend mieux maintenant.

    Essaye plutôt ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    (...)
    ORDER BY 
      IFNULL(
        Collectivite,
        CONCAT(v.Nom_Ved, ', ', v.Prenom_ved)
      )
    (Tu n'est pas obligé d'indenter comme je le fais c'est juste pour qu'on voit bien ce qu'on passe en paramètres)

  8. #8
    Membre régulier
    Inscrit en
    Juin 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 242
    Points : 94
    Points
    94
    Par défaut
    la dernière proposition de pcaboche marche j'obtiens maintenant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    vedette                                   collectivite
    Baatsch, Henri-Alexis                      NULL 
    Bach, Jean-Sébastien                        NULL 
    Balzac (de), Honoré                        NULL 
    Benzoni, Juliette                          NULL 
    NULL                                       Collectif du développement français en php 
    Maupassant (de), Guy                        NULL 
    NULL                                         Oasis 
    NULL                                        Official congres
    ce que je voulais

    merci bien de votre aide

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

Discussions similaires

  1. Question sur un Order BY
    Par DeWaRs dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/03/2012, 15h09
  2. Question sur l'Utilisation des ORDER BY
    Par msi51 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 14/10/2009, 10h24
  3. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  4. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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