begin process at 2010 02 10 04:37:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

MySQL

 > 

Requêtes

 > 

Occurence d'une personne sur plusieurs tables


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Occurence d'une personne sur plusieurs tables

mercredi 27 février 2008 à 14:03:59 | Occurence d'une personne sur plusieurs tables

crackspider7676

Membre Club

Bonjour,
voici mon problème :
j'ai 5 tables
=> t_user(id_user, nom)
=> t_text(id_text, id_user, lbl)
=>t_file(id_file, id_user, lbl)
=>t_image(id_image, id_user, lbl)
=>t_rejet(id_rejet, id_user, lbl)

je souhaiterais récupérer pour chaque user le nombre d'enregistrements qu'il a dans les 4 autres tables.
par exemple:
nom|nb_txt|nb_file|nb_image|nb_rejet
test |     1   |     2   |      0      |     3     
toto|     0   |     0   |     10     |     1

j'ai déjà créer une requete permettant pour chaque utilisateur de récupérer le nombre d'enregistrements dans la table t_text mais je bloque pour ajouter les tables suivantes.

SELECT t_user.nom, Count(t_user.user) AS compteText
FROM t_user INNER JOIN t_text ON t_user.id_user = t_text.id_user
GROUP BY t_user.id_user;

UNION

SELECT t_user.nom, 0 AS compteText
FROM t_user
WHERE not exists
(select * from t_text where t_text.id_user=t_user.id_user);

quelq'un aurait-til une idée?
merci
Philippe






jeudi 28 février 2008 à 11:18:39 | Re : Occurence d'une personne sur plusieurs tables

dominique.stock

Réponse acceptée !
Bonjour,
select nom,nbocc,nomtable from (

select count(id_user) as nbocc,id_user,"T_Text" as nomtable from t_text group by id_user
union
select count(id_user) as nbocc,id_user,"t_file" as nomtable from t_file group by id_user
union
....

) t, t_user where t.id=id_user



Dom
jeudi 28 février 2008 à 18:02:17 | Re : Occurence d'une personne sur plusieurs tables

crackspider7676

Membre Club
Réponse acceptée !
Merci pour la réponse, je ne pensais pas qu'on pouvait utiliser l'opérateur Union plusieurs fois dans une même requête.
Cepedant j'ai trouvé une solution entre temps utilisant les jointures:

SELECT DISTINCTROW t_user.id_user,
       t_user.login,
       CONCAT(t_user.nom, ' ', t_user.prenom) as user,
       t_user.date_inscription,
       t_user.date_connexion,
       ( IF ( t_user.droit = 0 , 'Utilisateur', 'Administrateur' )) as droit, 
       COUNT( DISTINCT t_text.id_hach_text ) as  Nb_Text ,
       COUNT( DISTINCT t_file.id_hach_file  ) as Nb_File,
       COUNT( DISTINCT t_image.id_image  ) as Nb_Image,
       COUNT( DISTINCT t_rejet.id_rejet  ) as Nb_Rejet
FROM t_user
LEFT OUTER JOIN t_text ON (t_user.ID_user = t_text.ID_user)
LEFT OUTER JOIN t_file ON (t_user.ID_user = t_file.ID_user)
LEFT OUTER JOIN t_image ON (t_user.ID_user = t_image.ID_user)
LEFT OUTER JOIN t_rejet ON (t_user.ID_user = t_rejet.ID_user)
GROUP BY t_user.login


Voilà, encore merci pour la solution!
Cordialement,
Philippe


Cette discussion est classée dans : text, user, id, tables, lbl


Répondre à ce message

Sujets en rapport avec ce message

2 liens entre 2 tables [ par fstyle ] Bonjour/soirJe suis en train de créer un système pour gérer ma comptabilité ...et je suis devant un problème !Dans mon mld, il y a 2 tables : t_compta requete sql complexe [ par nobull ] BonjourJ'ai une premiere tableCREATE TABLE `message` (  `id` smallint(6) NOT NULL auto_increment,  `nom` text NOT NULL,  `email` text NOT NULL,  `date recup infos tables croisées [ par christobal ] Bonjour, j'ai les neuronnes qui fume, c'est ce qui arrive quand on reste trop longtemp sur un projet on fini par ne plus rien comprendre. Mon pb est q Problème LEFT JOINT et champs en double ! [ par dami27 ] Bonjour à tous ! J'ai un problème et je ne sais pas comment le résoudre... Voici ma requete : SELECT monchampFROM annonce  LEFT JOIN annonce_rub1 ON ( Select Distinct sur une colonne [ par thiosyiasar ] Bonjour,Je veux récupérer une liste d'utilisateur dans une table utilisateur. (id, nom, prénom, email)L'application qui alimente la table ne prend pas Comment lier mes tables ou creer un ID génial... [ par Dc Rod ] Bonjour l'élite. J'ai absolument besoin de transformer le site de mon épouse, qui présente des galeries de peintures numérique. J'opte sans conteste Dépendance de tables SQL [ par toutgreg ] Bonjour, Je suis entrain de faire l'architecture de ma base SQL et je bloque sur une dépendance de table. Pour résumer, j'ai 3 tables et je cherche à ID des tables MS ACCESS [ par bizzard4 ] Bonjourj'aimerais savoir si il y a une fonction pour faire que le ID qui s'incrémente d'une table ACCESS retourne à 0 ?Merci d'avant~~ Cordialement Fr Requête qui boucle sur elle même [ par spyro666 ] Bonjour, j'aurais besoin d'une information : Comment puis-je faire une requête qui boucle sur elle même avec mysql4 ? Est au moins possible ou faut-il Gestion doublons group by & order by [ par yazer ] voila, je souhaite sélectionner le company_id correspondant au company_id de ayant le date_embauche le plus élevé chaque user_idpar exemple :company_i


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales