bug sql résolu par intuition et non par certitude
Posté : 04 oct. 2005, 18:43
Salut
Qui va me donner l'explication parfaite
voici une requete sql qui foire
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
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