[résolu] Compter le nombre d'entrées de plusieurs tables

Compter le nombre d'entrées de plusieurs tables [résolu] - SQL/NoSQL - Programmation

Marsh Posté le 06-03-2007 à 10:54:47    

Bonjour,
petit problème du jour : comment compter le nombre d'entrées de certaines tables ?
 
si je fais un

Code :
  1. SELECT COUNT(*) as nbr_annonces FROM table1, table2, table3


 
me retourne 0 si une des tables est vide !
 
Quelle est la bonne méthode ? là j'ai un blanc !
merci, bonne journée


Message édité par papanoramix le 06-03-2007 à 12:08:39
Reply

Marsh Posté le 06-03-2007 à 10:54:47   

Reply

Marsh Posté le 06-03-2007 à 11:10:53    

une somme des count de chaque table?:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 06-03-2007 à 11:31:02    

j'ai bien essayé:

Code :
  1. SELECT COUNT(table1.id) + COUNT(table2.id) + COUNT(table3.id) as nbr_entrees FROM table1,table2,table3


 
mais il me retourne 0 si une table est vide.

Reply

Marsh Posté le 06-03-2007 à 11:33:48    

ça doit marcher ça non?

 

select sum(toto)
from (
  select count(*) as toto from table1
  union
  select count(*) as toto from table2
  union
  select count(*) as toto from table3
)

 

[:dawao]


Message édité par skeye le 06-03-2007 à 11:34:05

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 06-03-2007 à 11:34:48    

(Ta syntaxe à toi elle fait un produit des tables, c'est n'importe-quoi...:o)


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 06-03-2007 à 11:46:03    

et pourquoi elle fait un produit si je demande une addition ?!
je teste ta solution.

Reply

Marsh Posté le 06-03-2007 à 11:50:35    

papanoramix a écrit :

et pourquoi elle fait un produit si je demande une addition ?!


Parce-que tu ne fais pas de jointure, tiens.:o
Essaie un select * au lieu d'un count, tu verras le résultat.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 06-03-2007 à 12:06:36    

Il me retourne une erreur : #1248 - Every derived table must have its own alias  
 

Reply

Marsh Posté le 06-03-2007 à 12:07:12    

montre ta requête. Chez moi ce que j'ai posté plus haut marche.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 06-03-2007 à 12:08:14    

ok j'ai trouvé :
 

Code :
  1. select sum(toto)
  2. from (
  3.   select count(*) as toto from table1
  4.   union
  5.   select count(*) as toto from table2
  6.   union
  7.   select count(*) as toto from table3
  8. ) as bidule


 
merci Skeye

Reply

Marsh Posté le 06-03-2007 à 12:08:14   

Reply

Marsh Posté le 05-06-2007 à 12:05:16    

Je me permets de reprendre ce sujet car j'aimerais faire la même chose, mais sans le SUM (c'est-à-dire obtenir le nombre d'entrées de chaque table dans des variables séparées).
Si on enlève juste le SUM ça merde, il ne compte pas la deuxième.

Message cité 1 fois
Message édité par Zorro561 le 05-06-2007 à 12:18:48
Reply

Marsh Posté le 05-06-2007 à 12:23:57    

Zorro561 a écrit :

Je me permets de reprendre ce sujet car j'aimerais faire la même chose, mais sans le SUM (c'est-à-dire obtenir le nombre d'entrées de chaque table dans des variables séparées).
Si on enlève juste le SUM ça merde, il ne compte pas la deuxième.


:sweat:
 

Code :
  1. SELECT nomtable, nblignes
  2. FROM (
  3.  SELECT 'table1' nomtable, count(*) nblignes FROM table1
  4.  union ALL
  5.  SELECT 'table2' nomtable, count(*) nblignes FROM table2
  6.  union ALL
  7.  SELECT 'table3' nomtable, count(*) nblignes FROM table3
  8. ) AS tmp


Message édité par MagicBuzz le 05-06-2007 à 12:24:14
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed