Bonjour
J'aimerais pouvoir compter les données de deux tables différentes en une requètes (une table membre et une table message) histoire d'avoir un nombre total de message et de membres. Est ce possible en une requète? Merci
Bonjour
J'aimerais pouvoir compter les données de deux tables différentes en une requètes (une table membre et une table message) histoire d'avoir un nombre total de message et de membres. Est ce possible en une requète? Merci
Testez le forum Fire Soft Board, un forum libre, gratuit et français.
Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.
2 façons :
1)
2)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT SUM(N) FROM (SELECT COUNT(*) AS N FROM message UNION SELECT COUNT(*) AS N FROM membres) T
Dans ce dernier cas, placer à la place de ... un prédicat renvoyant la valeur vrai pour une seule ligne de la table message.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT (SELECT COUNT(*) FROM message) + (SELECT COUNT(*) FROM membres) FROM message WHERE ...
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Merci pour ta réponse J'ai essayer ta première requète mais phpMyAdmin me retourne une erreur:
Pour ce qui est de ta seconde requ-te je n'ai pas compris le coup de "Dans ce dernier cas, placer à la place de ... un prédicat renvoyant la valeur vrai pour une seule ligne de la table message. "
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 #1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT COUNT( * ) AS N FROM fsb_messages UNION SELECT COUNT
Merci
Testez le forum Fire Soft Board, un forum libre, gratuit et français.
Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.
Bonjour,
juste une question, tu veux le total des deux tables ou un total par table ?
La faiblesse humaine est d'avoir des curiosités d'apprendre ce qu'on ne voudrait pas savoir
Pour la seconde requête, il faut que le test que tu mettras dans le "WHERE" ne retourne qu'un seul tuple d'une des tables (une seule ligne si tu préfères).Envoyé par dark_genova
Pour l'erreur de syntaxe, je ne vois pas.
Je voudrais un total par table, en gros choper le nombe total de membre et choper le nombre total de messagesEnvoyé par lper
Mad666, je vais essayer
Testez le forum Fire Soft Board, un forum libre, gratuit et français.
Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT COUNT(*) as NB_Msg, (SELECT COUNT(*) as NB_MBR FROM membres) FROM message
Ok, c'est bien ce qu'il me semblait, la réponse de Frédéric (SQLpro) donne un total général des deux tables.
De plus, Mysql n'accepte apparement pas les requêtes imbriquées et les unions, voir :¨
http://sqlpro.developpez.com/SQL_AZ_F.htm
Je te propose de chercher à transformer le Union de ma requête :
Peut être une requête du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT count(*) as tot FROM membre UNION SELECT.count(*) as tot FROM message
Mais la je ne suis pas du tout sûr du code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT COALESCE(a.count(*), b.count(*)) AS total, FROM membre A FULL OUTER JOIN message b
La faiblesse humaine est d'avoir des curiosités d'apprendre ce qu'on ne voudrait pas savoir
Aucune de ces requètes ne marchent c'est franchement dur le SQL en fait En fait il faut aussi que je reste dans le compatible MySQL sur la plupart des serveurs
Testez le forum Fire Soft Board, un forum libre, gratuit et français.
Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.
Le plus simple est de passer par deux requêtes.
Si tu veux vraiment passer par une seule requête et si tu as des identifiants dans chacune des table tu peux faire:
A+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select count(distinct msg.ident),count(distinct mbr.ident) from message msg, membre mbr
A quoi corespond le distinct exactement?
j'ai essayer deux COUNT() dans une requète mais ça me donne un total assez énrome et identique pour les deux
Testez le forum Fire Soft Board, un forum libre, gratuit et français.
Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.
Si, comme on peut le penser un message est envoyé par un membre, il doit y avoir un IdMembre dans la table Messagenon ?
Si la réponse est oui, on peut faire un truc comme :
Requête qui compte les messages et les membres ayant envoyé un message ; si il faut tous les membres, une jointure externe sur la table Membre doit régler le problème (dans ce cas remplacer COUNT(*) par COUNT(IdMessage).)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT COUNT(*), COUNT(DISTINCT IdMembre) FROM Message
J'affirme péremptoirement que toute affirmation péremptoire est fausse
5ième élément : barde-prince des figures de style, duc de la synecdoque
Je ne réponds jamais aux questions techniques par MP
En effet on aproche du BUT, ca me renvoie le nombre total de message ainsi que le nombre de membres ayant poster. Mais je ne vois pas torp comment récupérer aussi ceux qui n'ont aps postés
Bon bah j'ai trouvé, mefci de m'avoir mis sur la poste Merci bcp
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT COUNT(DISTINCT m.message_id), COUNT(DISTINCT me.membre_id) FROM fsb_messages m, fsb_membres me
Testez le forum Fire Soft Board, un forum libre, gratuit et français.
Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager