Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/05/2011, 12h08   #1
 
Inscription : septembre 2008
Messages : 114
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 114
Points : -49
Points : -49
Par défaut Problème dans une requête

Il existe 3 tables entreprise,contact,activite

entreprise(id_entreprise,nom_entreprise,id_activite)
activite(id_activite,nom_activite)
contact(id_contact,nom_contact,email,fonction,id_entreprise)



Activite | Total des entreprises | Total des contact avec leurs email


La base de donnée est de type mysql


Merci de votre aide
ghir_ana est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 13h02   #2
Membre du Club
 
Inscription : août 2009
Messages : 66
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 66
Points : 69
Points : 69
entreprise(id_entreprise,nom_entreprise,id_activite)
activite(id_activite,nom_activite)
contact(id_contact,nom_contact,email,fonction,id_entreprise)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
SELECT
  nom_activite,
  nb_ent,
  nb_contact
FROM
  activite
  LEFT JOIN (
    SELECT
      id_activite,
      COUNT(id_entreprise) AS nb_ent,
      COUNT(id_contact) AS nb_contact
    FROM
      entreprise
      LEFT JOIN contact USING(id_entreprise)
  ) AS my_stats ON USING(id_activite)
Je suis parti du principe que le champ "email" était obligatoire dans "contact".

[Edit] : j'avais oublié le GROUP BY de la sous-requête

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
SELECT
  nom_activite,
  nb_ent,
  nb_contact
FROM
  activite
  LEFT JOIN (
    SELECT
      id_activite,
      COUNT(id_entreprise) AS nb_ent,
      COUNT(id_contact) AS nb_contact
    FROM
      entreprise
      LEFT JOIN contact USING(id_entreprise)
    GROUP BY
       id_activite
  ) AS my_stats ON USING(id_activite)
NicoD. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h14.


 
 
 
 
Partenaires

Hébergement Web