par
Couin » 09 nov. 2019, 20:33
Hellooo
Petit problème tordu pour ce WE de trois jours
Voilà, une table archivant des demandes de disques. Dans cette table, deux colonnes nous intéressent pour faire des stats : username et userIP.
Je souhaite sortir une liste, dans un premier temps, indiquant les valeurs suivantes :
username : nombre de demandes | nombre d'ip
Pour le nombre de demandes ca c'est ok, mais je rame pour le nombre d'IP
Si je fais cette requête, pas de message d'erreur mais le nombre d'IP pour chaque utilisateur sera le nombre d'IP de 'Couin'
Code : Tout sélectionner
SELECT
username AS usr,
(SELECT COUNT(ID) FROM diskal_memory WHERE diskal_memory.username = usr) AS nb_diskal,
(SELECT Count(userIP) FROM (SELECT DISTINCT diskal_memory.userIP FROM diskal_memory WHERE diskal_memory.username = 'Couin') AS monAlias) AS nb_ip
FROM diskal_memory
GROUP BY username
ORDER BY nb_diskal DESC, username ASC
Si je remplace 'Couin' par usr :
Code : Tout sélectionner
SELECT
username AS usr,
(SELECT COUNT(ID) FROM diskal_memory WHERE diskal_memory.username = usr) AS nb_diskal,
(SELECT Count(userIP) FROM (SELECT DISTINCT diskal_memory.userIP FROM diskal_memory WHERE diskal_memory.username = usr) AS monAlias) AS nb_ip
FROM diskal_memory
GROUP BY username
ORDER BY nb_diskal DESC, username ASC
MySQL me retourne Unknown column 'usr' in 'where clause' .
Même si je rajoute "username AS usr" dans les autres SELECT.
C’est sur que je pourrais faire une nouvelle requête dans le while de la première, mais si j'ai la possibilité d'avoir les données en une seule requête, c'est aussi mieux

Si quelqu'un a une astuce, je suis preneur du coup de palme
Merkouin et bon ouiK !
Hellooo :)
Petit problème tordu pour ce WE de trois jours :P
Voilà, une table archivant des demandes de disques. Dans cette table, deux colonnes nous intéressent pour faire des stats : username et userIP.
Je souhaite sortir une liste, dans un premier temps, indiquant les valeurs suivantes :
username : nombre de demandes | nombre d'ip
Pour le nombre de demandes ca c'est ok, mais je rame pour le nombre d'IP :(
Si je fais cette requête, pas de message d'erreur mais le nombre d'IP pour chaque utilisateur sera le nombre d'IP de 'Couin'
[code]SELECT
username AS usr,
(SELECT COUNT(ID) FROM diskal_memory WHERE diskal_memory.username = usr) AS nb_diskal,
(SELECT Count(userIP) FROM (SELECT DISTINCT diskal_memory.userIP FROM diskal_memory WHERE diskal_memory.username = 'Couin') AS monAlias) AS nb_ip
FROM diskal_memory
GROUP BY username
ORDER BY nb_diskal DESC, username ASC [/code]
Si je remplace 'Couin' par usr :
[code]SELECT
username AS usr,
(SELECT COUNT(ID) FROM diskal_memory WHERE diskal_memory.username = usr) AS nb_diskal,
(SELECT Count(userIP) FROM (SELECT DISTINCT diskal_memory.userIP FROM diskal_memory WHERE diskal_memory.username = usr) AS monAlias) AS nb_ip
FROM diskal_memory
GROUP BY username
ORDER BY nb_diskal DESC, username ASC [/code]
MySQL me retourne Unknown column 'usr' in 'where clause' .
Même si je rajoute "username AS usr" dans les autres SELECT.
C’est sur que je pourrais faire une nouvelle requête dans le while de la première, mais si j'ai la possibilité d'avoir les données en une seule requête, c'est aussi mieux :D
Si quelqu'un a une astuce, je suis preneur du coup de palme :)
Merkouin et bon ouiK !