Qui va me donner l'explication parfaite
voici une requete sql qui foire
SELECT g.id AS gid,
g.maxUser - count(ug.user) AS nbPlaces
FROM `groups` AS g
LEFT JOIN `rel_group_user` ug
ON `g`.`id` = `ug`.`team`
GROUP BY (`g`.`id`)
HAVING nbPlaces > 0 OR g.maxUser IS NULL
ORDER BY nbPlaces DESC
voici la requete corrigéeSELECT g.id AS gid,
g.maxUser - count(ug.user) AS nbPlaces,
g.maxUser g_maxUsers
FROM `groups` AS g
LEFT JOIN `rel_group_user` ug
ON `g`.`id` = `ug`.`team`
GROUP BY (`g`.`id`)
HAVING nbPlaces > 0 OR g_maxUsers IS NULL
ORDER BY nbPlaces DESC
Qui peut expliquer pourquoi il faut ajouter g.maxUsers dans la liste des champs du select alors qu'il vient de la table FROM (donc le champs est toujours là pour tous les rows