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 + count() ou SUM + jointure


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Par défaut select + count() ou SUM + jointure
    bonjour

    j'ai une question d'ordre technique de faisabilité.

    j'aimerais selectionner des champs de la table 1 et placer au sein de la meme requette une jointure avec un count() ou SUM sur la table 2 et afficher le tout grace à un while(mysql_fetch_array($xxx))

    ma requette de base marche bien j'arrive pas à integrer SUM ou COUNT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql=" SELECT DISTINCT(RANDO_A_FAIRE.ID_RANDO),DUREE,NIVEAU,DEPART,REGION,LIBELLE,DATE ";
    $sql.="FROM RANDO_A_FAIRE LEFT JOIN PARTICIPANT ON RANDO_A_FAIRE.ID_RANDO=PARTICIPANT.ID_RANDO "; 
    $sql.="where FLAG = 'Y'";
    est ce possible ? si oui un petit exemple serais le bienvenue

    merci d'avance

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    salut,

    peux tu donner un petit exemple du contenu de tes tables et du resultat souhaité?

    merci

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Par défaut
    bonjour

    j'ai modifier ma requette j'avance un peu mais j'obtiens le meme result sur toutes les lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql=" SELECT DISTINCT(RANDO_A_FAIRE.ID_RANDO),DUREE,NIVEAU,DEPART,REGION,LIBELLE,DATE, ";  
    $sql.="SUM(PARTICIPANT.ID_RANDO) AS nbr ";
    $sql.="FROM RANDO_A_FAIRE LEFT JOIN PARTICIPANT ON RANDO_A_FAIRE.ID_RANDO=PARTICIPANT.ID_RANDO "; 
    $sql.="where FLAG = 'Y' GROUP BY RANDO_A_FAIRE.ID_RANDO";
    pour le resultat escompte je veux rajouter un champ NBR avant DATE dans lequel sera inscrit le nombre total de participants
    voir exemple : http://www.reunion-rando.com/index.php?menu=pei

    pour les tables voici la strucrure

    RANDO_A_FAIRE
    ID_RANDO int(4)
    DUREE varchar(6)
    NIVEAU varchar(6)
    DEPART varchar(128)
    REGION varchar(6)
    LIBELLE varchar(128)
    DATE varchar(32)
    TXT text
    CARTE varchar(32)
    FLAG varchar(1)

    PARTICIPANT
    ID_PARTICIPANT int(4)
    ID_RANDO int(4)
    ID_RANDONNEUR int(4)

  4. #4
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    salut,

    essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT RANDO_A_FAIRE.ID_RANDO,DUREE,NIVEAU,DEPART,REGION,LIBELLE,DATE,count(*) AS nbr
    FROM RANDO_A_FAIRE LEFT JOIN PARTICIPANT ON RANDO_A_FAIRE.ID_RANDO=PARTICIPANT.ID_RANDO  
    where FLAG = 'Y' 
    GROUP BY RANDO_A_FAIRE.ID_RANDO,duree,niveau,depart,region,libelle,date

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2004
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 181
    Par défaut
    excellent à 99% reste un petit bug
    il me marque 1 participant dans la derniere rando alors qu'il ny a aucun inscrit

    j'ai modifier le count(*) comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql="SELECT RANDO_A_FAIRE.ID_RANDO,DUREE,NIVEAU,DEPART,REGION,LIBELLE,DATE,count(PARTICIPANT.ID_RANDO) AS nbr_participant ";
    $sql.="FROM RANDO_A_FAIRE LEFT JOIN PARTICIPANT ON RANDO_A_FAIRE.ID_RANDO=PARTICIPANT.ID_RANDO "; 
    $sql.="WHERE FLAG = 'Y' ";
    $sql.="GROUP BY RANDO_A_FAIRE.ID_RANDO,DUREE,NIVEAU,DEPART,REGION,LIBELLE,DATE"
    merci pour ton aide

  6. #6
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Ça c'est dû au LEFT JOIN, mais si tu mets INNER JOIN, la rando sans inscrit n'apparaîtra plus.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

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

Discussions similaires

  1. SELECT Count et jointure
    Par Lynecoln dans le forum Langage SQL
    Réponses: 11
    Dernier message: 18/11/2010, 14h54
  2. SELECT count et Jointure interne
    Par tompalmeras dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 30/04/2010, 14h54
  3. De l'aide pour Jointure, avec selection count =0
    Par onemart dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/01/2009, 09h01
  4. Select count avec jointure, en récupérant les 0 : possible ?
    Par littlewings dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/07/2008, 12h57
  5. select count avec jointure, en récupérant les 0
    Par littlewings dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/07/2008, 11h58

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