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 05/09/2011, 17h00   #1
Membre du Club
 
Inscription : février 2009
Messages : 150
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 150
Points : 51
Points : 51
Par défaut Comment obtenir le nombre de ligne dans une requête ?

Bonjour,

j'ai une requête que voici :

Code :
1
2
3
4
5
6
7
8
 
 
SELECT manufacturer.name
FROM manufacturer, product
WHERE manufacturer.id_manufacturer = product.id_manufacturer
AND product.id_category =  '2'
GROUP BY product.id_manufacturer
HAVING COUNT( DISTINCT product.id_product ) >100
Et ça m'affiche comme résultat une colonne à 5 lignes :
Code :
1
2
3
4
5
6
7
8
 
name
-------------------------
Chrysler
Citroen
Dacia
Peugeot
Renault
Donc comme il y a 5 lignes je cherche la requête select count() qui m'affiche justement comment résultat 5

Une idée ?

Merci d'avance, cordialement.
totoAussi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 17h10   #2
Membre extrêmement actif
 
Avatar de kedare
 
Mathieu
Administrateur systèmes et réseaux
Inscription : juillet 2005
Messages : 1 476
Détails du profil
Informations personnelles :
Nom : Mathieu
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux

Informations forums :
Inscription : juillet 2005
Messages : 1 476
Points : 1 260
Points : 1 260
Code :
1
2
3
4
5
6
SELECT COUNT(*) FROM (SELECT manufacturer.name
FROM manufacturer, product
WHERE manufacturer.id_manufacturer = product.id_manufacturer
AND product.id_category =  '2'
GROUP BY product.id_manufacturer
HAVING COUNT( DISTINCT product.id_product ) >100) AS DATA
kedare est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 15h33   #3
Membre du Club
 
Inscription : février 2009
Messages : 150
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 150
Points : 51
Points : 51
Bonjour

merci pour ta réponse.

Cependant, l'alias ne s'affiche pas dans la table de résultat.
J'ai count(*) comme nom de colonne au lieu de l'alias.

Code :
1
2
3
count(*)
----------
5
Je ne sais pas si c'est pour cette raison là :
http://dev.mysql.com/doc/refman/5.0/...ith-alias.html

Une idée ?

Merci d'avance, cordialement
totoAussi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 16h04   #4
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

Informations professionnelles :
Activité : Retraité
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
Saluton,
L'alias de la requête, DATA, est celui de la table résultant de la sous-requête, pas celui de la colonne.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
articles : Comment émuler un tableau croisé [quasi] dynamique
et : Une énigme mathématique résolue avec MySQL
recommande l'utilisation de PDO (PHP5 Data Objects)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 16h42   #5
Membre du Club
 
Inscription : février 2009
Messages : 150
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 150
Points : 51
Points : 51
Re :

merci, mais comment puis-je avoir un alias de la colonne svp ?

Cdt, a+
totoAussi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 17h13   #6
Membre extrêmement actif
 
Avatar de kedare
 
Mathieu
Administrateur systèmes et réseaux
Inscription : juillet 2005
Messages : 1 476
Détails du profil
Informations personnelles :
Nom : Mathieu
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux

Informations forums :
Inscription : juillet 2005
Messages : 1 476
Points : 1 260
Points : 1 260
Code :
1
2
3
4
5
6
SELECT COUNT(*) AS COUNTER FROM (SELECT manufacturer.name
FROM manufacturer, product
WHERE manufacturer.id_manufacturer = product.id_manufacturer
AND product.id_category =  '2'
GROUP BY product.id_manufacturer
HAVING COUNT( DISTINCT product.id_product ) >100) AS DATA
kedare est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 17h14   #7
Membre du Club
 
Inscription : février 2009
Messages : 150
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 150
Points : 51
Points : 51
Re : je crois que j'ai presque trouvé :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
 
SELECT category.name, category.id_category, 
(
	SELECT COUNT(*) FROM 
	(
			SELECT product.id_manufacturer 
			FROM product 
			GROUP BY product.id_manufacturer
			HAVING COUNT( DISTINCT product.id_product ) >= 2
	)
 
) AS nombre_distinct_manufacturer
FROM category, product
WHERE category.id_category = product.id_category 
GROUP BY product.id_category
HAVING nombre_distinct_manufacturer >= 3
Mais mysql m'affiche cette erreur :
Code :
1
2
 
Every derived TABLE must have its own alias
Une idée ?

Merci d'avance, cdt.
totoAussi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 17h17   #8
Membre extrêmement actif
 
Avatar de kedare
 
Mathieu
Administrateur systèmes et réseaux
Inscription : juillet 2005
Messages : 1 476
Détails du profil
Informations personnelles :
Nom : Mathieu
Localisation : France

Informations professionnelles :
Activité : Administrateur systèmes et réseaux

Informations forums :
Inscription : juillet 2005
Messages : 1 476
Points : 1 260
Points : 1 260
Rajoute un "AS" au count comment sur ma requete au dessus je pense.
kedare est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2011, 17h28   #9
Membre du Club
 
Inscription : février 2009
Messages : 150
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 150
Points : 51
Points : 51
Merci kedare pour ta réponse qui a résolu mon problème.

Je me suis trompé de discussion en postant mon message n° #7.

Le message n° #7 devait etre posté dans la discussion :
http://www.developpez.net/forums/d11...bonne-requete/ (que je n'ai pas réussi à résoudre d'ailleurs)

Merci pour ta résolution !
totoAussi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web