Bonjour, j'aurais besoin d'aide pour trouver la bonne façon d'écrire ma requête.
Voici une requête qui me donne satisfaction :
Mais voilà mon problème, c'est que cette requête me donne tous les users qui ont plus que -1 point (-1 = inactif et 0 et plus = actif) mais je voudrais éliminer ceux qui sont actif mais qui n'ont pas fait de choix, donc qui n'ont pas correspondance dans une autre table. Alors je pensais faire un count(*) dans mon autre table que je voudrais inclure dans une clause where, mais ça ne fonctionne pas. Voici de quoi aurait l'air ma requête
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT user.id AS userid, user.name_aff, user.point, user.fourpoints, user.twopoints, user.onepoint FROM user WHERE user.point > -1 ORDER BY user.point DESC , user.fourpoints DESC , user.twopoints DESC , user.onepoint DESC , user.name_aff ASC
L'erreur qu'on me donne est : Unknown column 'nb_choice' in 'where clause'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT user.id AS userid, user.name_aff, user.point, user.fourpoints, user.twopoints, user.onepoint, (SELECT COUNT(*) FROM p_choice WHERE user_id = userid) AS nb_choice FROM user WHERE user.point > -1 AND nb_choice > 0 ORDER BY user.point DESC , user.fourpoints DESC , user.twopoints DESC , user.onepoint DESC , user.name_aff ASC
Parcontre, je sais que ma "sous-requête" fonctionne puisque quand je supprime la problématique du WHERE, j'ai une nouvelle colonne intitulé nb_choice qui correspond au nombre de choix fait par les users.
Merci beaucoup de votre aide.
Partager