Bonjour,
j'aimerais effectuer une requête un peu spéciale mais je n'y arrive pas.
je me trouve avec 3 tables
User Transaction et UserTransaction.
les champs qui nous intéressent sont id dans User, id dans Transaction et idUser et idTransaction dans UserTransaction.
UserTransaction permet donc de faire une relation ManyToMany entre User et Transaction
Ce que je voudrais pouvoir faire c'est une requête qui me sort pour chaque ligne de UserTransaction le idUser, le idTransaction et le nombre de UserTransaction avec cet idTransaction
j'ai essayé
mais j'ai l'erreur suivanteCode:
1
2
3
4 SELECT T.id, UT.idUser, (SELECT count(id) FROM UserTransaction AUT where AUT.idTransaction=T.id) FROM Transaction T, UserTransaction UT WHERE T.id=UT.idTransaction;
j'ai aussi tentéCode:ERROR 1140 (42000): Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
qui ne me donne pas le résultat souhaité.Code:
1
2
3 SELECT T.id, UT.idUser, count(*) FROM Transaction T, UserTransaction UT GROUP BY T.id;
j'ai également essayé
etCode:
1
2
3
4 SELECT T.id, UT.idUser, (SELECT count(id) FROM UserTransaction AUT WHERE AUT.idTransaction=T.id) FROM Transaction T, UserTransaction UT GROUP BY T.id;
qui me donnent les erreursCode:
1
2
3
4 SELECT T.id, UT.idUser, MAX((SELECT count(id) FROM UserTransaction AUT WHERE AUT.idTransaction=T.id)) FROM Transaction T, UserTransaction UT GROUP BY T.id;
etCode:ERROR 1242 (21000): Subquery returns more than 1 row
Si quelqu'un a une idée de ce qui pourrait résoudre mon problème je suis preneurCode:ERROR 1111 (HY000): Invalid use of group function
Merci
Frol