Probleme avec SELECT COUNT & requête avec UNION
Fermé
MissOleana
Messages postés
4
Date d'inscription
mercredi 27 novembre 2013
Statut
Membre
Dernière intervention
29 novembre 2013
-
27 nov. 2013 à 23:10
Utilisateur anonyme - 28 nov. 2013 à 11:20
Utilisateur anonyme - 28 nov. 2013 à 11:20
A voir également:
- Probleme avec SELECT COUNT & requête avec UNION
- Trait d'union insécable word - Guide
- C2002 western union ✓ - Forum Vos droits sur internet
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
- Please select boot device - Forum Windows
- Sms western union ✓ - Forum Mobile
1 réponse
Utilisateur anonyme
28 nov. 2013 à 11:20
28 nov. 2013 à 11:20
salut,
Je ne sais plus si c'est obligatoire, mais il vaut mieux rajouter un alias sur le count de la première partie (inutile ensuite).
ensuite, que veux tu faire? Si l'idée est de récupérer la somme des message envoyé et recus d'une personne, l'union n'est pas, de mon point de vue, le plus adapté : j'utiliserai un join :
Mais ca ne fonctionnera pas dans le sens où :
- tu ne regroupe pas tes résultats avec un group by
- si time représente une heure, on ne devrait pas retrouver de combinaison "user+id+time" identique.
Il faudrai un peu plus d'explication sur le rôle de la requête (que résultats voudrais-tu? à partir de quoi?) pour t'aider plus précisément.
naga
SELECT Expediteur, time, id, COUNT(*) as tot
FROM amis
WHERE Destinataire= '$utilisateur'
UNION
SELECT Destinataire, time, id, COUNT(*)
FROM amis
WHERE Expediteur= '$utilisateur'
order by time limit
Je ne sais plus si c'est obligatoire, mais il vaut mieux rajouter un alias sur le count de la première partie (inutile ensuite).
ensuite, que veux tu faire? Si l'idée est de récupérer la somme des message envoyé et recus d'une personne, l'union n'est pas, de mon point de vue, le plus adapté : j'utiliserai un join :
select a1.user,a1.time ,a1.id, (a1.tot + a2.tot) as total
from (select Expediteur as user, time, id, COUNT(*) as tot
from amis a1
where a1.Destinataire= '$utilisateur')as subAmis1
join (select Destinataire as user, time, id, COUNT(*) as tot
from amis a2
where a2.Expediteur= '$utilisateur')as subAmis2 on a1.user = a2.user and a1.time = a2.time and a1.id=a2.id;
Mais ca ne fonctionnera pas dans le sens où :
- tu ne regroupe pas tes résultats avec un group by
- si time représente une heure, on ne devrait pas retrouver de combinaison "user+id+time" identique.
Il faudrai un peu plus d'explication sur le rôle de la requête (que résultats voudrais-tu? à partir de quoi?) pour t'aider plus précisément.
naga