我有下面的查询,它得到了我想要的结果,但我不能按“id\u usiliateur”分组,这是查询:
SELECT count(distinct d.id_dossier), p.name, u.id_utilisateur, u.superior
FROM dossier AS d
LEFT JOIN action AS a
ON a.id_dossier=d.id_dossier
LEFT JOIN CD AS cd
ON cd.id_dossier=d.id_dossier
LEFT JOIN utilisateur AS u
ON u.id_utilisateur=cd.id_utilisateur
LEFT JOIN personne AS p
ON p.id_personne=u.id_personne
WHERE d.id_dossier>0
GROUP BY u.id_utilisateur,d.id_dossier
HAVING (
SELECT COUNT(a2.id_dossier)
FROM action AS a2
WHERE a2.fait=0
AND a2.commentaire=0
AND a2.id_dossier=d.id_dossier
)<1
ORDER BY d.date_creation DESC
LIMIT 500
组由id\u usiliateur是不工作的,我得到的结果为同一个用户在多行,我如何解决这个问题?
这是我得到的结果和预期的结果
3条答案
按热度按时间wd2eg0qa1#
对于那些有相同问题的人,我通过简单地将子查询放在and条件中解决了这个问题,并且删除了这个特定查询的having子句。
e0bqpujr2#
如果你愿意的话
id_utilisateur
很明显,那么你需要group by id_utilisateur
.您的查询已完成
GROUP BY u.id_utilisateur,d.id_dossier
,您需要将其更改为GROUP BY u.id_utilisateur
.如果查询中需要更多的列,请将GROUPBY语句放入内部查询,然后联接表。
nlejzf6q3#
GROUP BY
中所有未聚合的列SELECT
:如果您明确希望每个
u.id_utilisateur
,然后聚合所有其他列: