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 :

Erreur de requete


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    195
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 195
    Par défaut Erreur de requete
    Bonjour à tous,

    J'aimerais savoir si quelqu'un connais une autre méthode pour écrire les 2 lignes qui sont commentées ci dessous. J'ai essayé avec des LEFT OUTER JOIN et autre JOIN en tout genre mais pas trouvé le bon moyen :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    		$res = mysql_query(" SELECT c_users.nom, ".
    							"c_users.prenom, ".
    							"c_users.login, ".
    							"c_users.actif AS 'actif/inactif', ".
    							"c_users.date_crea AS 'date création', ".
    							"c_users.date_last AS 'Date derniére connexion' ".
    							/*"select COUNT(c_trajets.ID_user) AS 'nbr_trajets' FROM c_trajets WHERE c_trajets.ID_user= c_users.ID_user, ".
    							"select COUNT(c_connexions.ID_user) AS 'nbr_connexions' FROM c_connexions WHERE c_connexions.ID_user= c_users.ID_user ".
    							*/"FROM c_users, c_connexions ".
    							"ORDER BY c_users.nom ASC ".
    							"GROUP BY c_users.ID_user");
    Cette requete doit récupérer le nom, prénom, ... de l'utilisateur et compter le nombre de connexions qu'il a effectué (en faisant une jointure avec ID_client) et le nombre de trajets auxquels il participe (jointure également sur ID_client).

    Voila si quelqu'un aurait une autre solution pour faire marcher ma requete.

    Merci d'avance.

  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 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 063
    Par défaut
    Bonjour,

    Dans ta requête, plusieurs choses sont bizarres : que fait covoiturage_connexions dans le FROM ? GROUP BY et ORDER BY sont inversés. Je ne suis pas sûr que mettre des alias entre quote soit correct (c'est pas plutôt entre ` (Alt Gr + 7)) et des alias avec des espaces et des lettres accentuées, c'est plutôt risqué ...

    Bref, voici la requête qui devrait faire ce que tu souhaites :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    select u.nom, u.prenom, u.login, u.actif, u.date_crea, u.date_last, t.nb_trajets, c.nb_connexions
    from c_users u
    inner join (
        select t2.ID_user, count(*) as nb_trajets 
        from c_trajets t2 
        group by t2.ID_user
    ) as t on u.ID_user = t.ID_user
    inner join (
        select c2.ID_user, count(*) as nb_connexions 
        from c_connexions c2 
        group by c2.ID_user
    ) as c on u.ID_user = c.ID_user
    group by u.ID_user
    order by u.nom
    Je te laisse le soin de remettre les alias comme tu veux .

    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 confirmé
    Inscrit en
    Avril 2007
    Messages
    195
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 195
    Par défaut
    Ok merci bien !

    J'avais oublié de remplacer le covoiturage par c :s.

    Ta requête marche bien, j'ai juste du remplacer les INNER JOIN par des LEFT OUTER JOIN pour obtenir le résultat que je voulais.

    J'avais pas vu pour le GROUP BY inversé avec le ORDER BY :s

    Merci bien !


    A+

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    195
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 195
    Par défaut
    Autre petite question,

    En fait la requête marche niquel sous navicat(800 résultats environ) mais pas moyen de la faire marcher dans la partie administration de mon site (elle ne retourne aucun résultat).

    Si je fais juste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT u.nom, u.prenom, u.login, u.actif, u.date_crea, u.date_last
    FROM c_users u
    GROUP BY u.ID_user
    ORDER BY u.nom
    , ca marche.

    De quoi cela pourrait-il provenir ?

  5. #5
    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 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 063
    Par défaut
    Quelle est la version MySQL de ton site ?

    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

Discussions similaires

  1. URGENT : Erreur dans requete
    Par shub dans le forum Access
    Réponses: 5
    Dernier message: 21/06/2006, 11h37
  2. erreur dans requete Sql
    Par flOZ dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/05/2006, 02h49
  3. [TRANSACTION] Erreur dans requete
    Par Tchinkatchuk dans le forum Langage SQL
    Réponses: 7
    Dernier message: 26/05/2005, 17h38
  4. erreur bigint requete Employee.fdb via AdoDb
    Par jflebegue dans le forum Connexion aux bases de données
    Réponses: 7
    Dernier message: 04/01/2005, 11h03
  5. Recuperer les erreurs des requetes sql en asp
    Par emile13 dans le forum ASP
    Réponses: 3
    Dernier message: 01/04/2004, 13h49

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