我通过以下查询收到此错误。请帮我改正。

#1111 - Invalid use of group function


t_person表包含人员详细信息
tr_category表包含类别详细信息
tr_testimonial表包含额定值详细信息


所有表都有personpkid作为公共字段。

SELECT
    p.*,c.*,t.*
FROM
    t_person p
    LEFT JOIN tr_category c ON p.personpkid=c.personpkid
    LEFT JOIN tr_testimonial t ON p.personpkid=t.personpkid
WHERE
    avg(t.ratingvalue)>=5
GROUP BY
    p.personpkid ORDER BY approvedate DESC


先感谢您,
SG

最佳答案

使用分组表达式过滤结果时,需要使用HAVING子句。尝试这个:

SELECT
    p.*,c.*,t.*
FROM
    t_person p
    LEFT JOIN tr_category c ON p.personpkid=c.personpkid
    LEFT JOIN tr_testimonial t ON p.personpkid=t.personpkid
GROUP BY
    p.personpkid ORDER BY approvedate DESC
HAVING
    avg(t.ratingvalue)>=5

关于php - 出现错误“#1111-无效使用组功能”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10698425/

10-11 18:25