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 :
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
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
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
L'erreur qu'on me donne est : Unknown column 'nb_choice' in 'where clause'

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.