[Résolu] PB requete SQL 3 tables + 2 count

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par rhesus_plw, 25 Janvier 2010.

  1. rhesus_plw
    rhesus_plw Nouveau WRInaute
    Inscrit:
    25 Janvier 2010
    Messages:
    3
    J'aime reçus:
    0
    Bonjour Tout le monde.

    Je n'arrive pas à construire une requête sql qui interroge plusieurs tables et qui fait 2 counts.

    JE vous explique le contexte, j'ai une table qui contient des nom de logiciels, une autre table avec des utilisateurs et une autre table avec des images.

    Je veux afficher la liste des logiciels mais avec le nombre de personne qui utilise chaque logiciel et le nombre d'image qui ont été faite avec chaque logiciel.

    Exemple : photoshop -> 10 utilisateur et 53 images.

    J'arrive bien à faire une requête pour savoir combien j'ai d'utilisateur par logiciel :
    SELECT l.*, count(c.id_client) as nb_clients FROM logiciels as l, competences as c WHERE l.id_logiciel=c.id_logiciel GROUP BY l.id_logiciel ORDER BY nb_clients DESC

    J'arrive bien a faire une requette pour savoir combien d'images ont été faite avec chaque logiciel :
    SELECT l.*, count(tl.id_travail) as nb_travaux FROM logiciels as l, travaux_to_logiciels as tl WHERE l.id_logiciel = tl.id_logiciel GROUP BY l.id_logiciel ORDER BY nb_travaux DESC

    Mais je n'arrive pas a mixer les 2 requêtes ensemble pour avoir dans la même requête, pour chaque logiciel , son nombre d'utilisateur et le nombre d'image.

    Pourriez vous m'aider à finaliser cette requête.

    Merci d'avance et bonne journée à tous
     
  2. seebz
    seebz WRInaute impliqué
    Inscrit:
    15 Avril 2007
    Messages:
    722
    J'aime reçus:
    0
    Re: PB requete SQL 3 tables + 2 count

    Sans garantie, essaye ceci :
    Code:
    SELECT l.*, count(c.id_client) as nb_clients, count(tl.id_travail) as nb_travaux 
    FROM logiciels l
    LEFT JOIN competences c
      ON l.id_logiciel=c.id_logiciel 
    LEFT JOIN travaux_to_logiciels tl 
      ON l.id_logiciel = tl.id_logiciel 
    GROUP BY l.id_logiciel 
    ORDER BY nb_clients DESC, nb_travaux DESC
     
  3. rhesus_plw
    rhesus_plw Nouveau WRInaute
    Inscrit:
    25 Janvier 2010
    Messages:
    3
    J'aime reçus:
    0
    Re: PB requete SQL 3 tables + 2 count

    Bonjour et merci de te pencher sur mon problème.

    Ta requête ne génère pas d'erreur mais les résultats sont incorrects.

    pour photoshop par exemple je devrai avoir comme résultat : 8 utilisateurs et 20 images mais avec ta requête j'obtiens 160 utilisateurs et 160 images.
     
  4. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Re: PB requete SQL 3 tables + 2 count

    Je dirais:

    Code:
    select l.*,u.nb,i.nb FROM logiciels l LEFT JOIN (SELECT c.id_logiciel,count(*) AS nb FROM competences c GROUP BY 1) u ON u.id_logiciel=l.id_logiciel LEFT JOIN (SELECT tl.id_logiciel,count(*) AS nb FROM travaux_to_logiciels tl GROUP BY 1) i ON i.id_logiciel=l.id_logiciel
    
    Pas testé, et comme d'habitude, il risque d'y avoir des problèmes avec les limitations de diverses versions de mysql sur les sous-requêtes...

    Jacques.
     
  5. rhesus_plw
    rhesus_plw Nouveau WRInaute
    Inscrit:
    25 Janvier 2010
    Messages:
    3
    J'aime reçus:
    0
    Re: PB requete SQL 3 tables + 2 count

    Merci Jacques, ta requête fonctionne très bien.

    Quelles seraient d'après toi les limitations dont tu parles ? j'utilise Mysql en version 5.0.51a.

    Merci et bonne journée.
     
  6. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Si ça marche alors pas de souci... Il y a certaines constructions avec des sous-requêtes qui ne passent pas dans certaines versions de mysql, c'est tout (et comme moi j'utilise postgresql et pas mysql, je ne les connais pas par coeur).

    Jacques.
     
Chargement...
Similar Threads - [Résolu] requete SQL Forum Date
un requête sql [Résolu] Développement d'un site Web ou d'une appli mobile 9 Avril 2010
[Résolu] Requête MySQL Développement d'un site Web ou d'une appli mobile 28 Août 2009
[Résolu] Requête MySQL - cumul de champs dans la condition Développement d'un site Web ou d'une appli mobile 22 Juin 2009
[résolu][sql] Requête avec WHERE Développement d'un site Web ou d'une appli mobile 1 Juillet 2008
[résolu] Nombres arrondis suite à requête SQL Développement d'un site Web ou d'une appli mobile 19 Avril 2008
[résolu] Requête SQL Développement d'un site Web ou d'une appli mobile 14 Novembre 2007
[résolu] Demande d'aide pour une requête sql Développement d'un site Web ou d'une appli mobile 13 Juin 2007
[Résolu]- Requête MySql Développement d'un site Web ou d'une appli mobile 17 Janvier 2007
[résolu] Requete SQL Développement d'un site Web ou d'une appli mobile 12 Janvier 2007
[RESOLU] Requête SQL sur condition aléatoire Développement d'un site Web ou d'une appli mobile 14 Janvier 2006
[challenge] [résolu] Requete SQL galere Développement d'un site Web ou d'une appli mobile 5 Janvier 2006
[Résolu] Requete SQL Problèmes de référencement spécifiques à vos sites 10 Décembre 2005
Mysql : plusieurs requetes en une [résolu] Administration d'un site Web 30 Mai 2005
[Résolu] 2 descriptions pour une même url selon requête Crawl et indexation Google, sitemaps 1 Juin 2016
[résolu]Petit souci de requête Développement d'un site Web ou d'une appli mobile 4 Juillet 2008
[Résolu] 2 requêtes en une seule je galère Développement d'un site Web ou d'une appli mobile 22 Mai 2008
[Résolu] N'afficher une requete que si le champ de la BDD... Développement d'un site Web ou d'une appli mobile 22 Février 2008
[resolu] probleme de requete Développement d'un site Web ou d'une appli mobile 15 Juin 2006
Problème images en https (forum phpbb) [résolu] Développement d'un site Web ou d'une appli mobile 18 Novembre 2017
[Résolu] Redirection 301 FR vers EN sur Prestashop uniquement sur outils Google ? Problèmes de référencement spécifiques à vos sites 11 Septembre 2017