Php MYSQL WHERE子句不适用于生成的字段

Php MYSQL WHERE子句不适用于生成的字段,php,mysql,where-clause,Php,Mysql,Where Clause,大家好,由于某种原因,WHERE rating=1子句在这种情况下不起作用。我认为这可能与外部sql语句是在内部语句被执行之前为as rating generated字段构造的有关,因为它可以很好地处理其他字段 SELECT property.id as propertyid, property.main_image as mainimageid, property.number as number, property.address as address

大家好,由于某种原因,WHERE rating=1子句在这种情况下不起作用。我认为这可能与外部sql语句是在内部语句被执行之前为as rating generated字段构造的有关,因为它可以很好地处理其他字段

SELECT 
    property.id as propertyid, 
    property.main_image as mainimageid, 
    property.number as number, 
    property.address as address, 
    property.number as number, 
    property.area as area, 
    image.id as imageid, 
    CAST((SELECT sum(review.rating) / COUNT(*) / 20 as innerrating 
          FROM 
              review 
          WHERE 
              review.propertyid = property.id) AS decimal(3,2)) as rating
    FROM 
        property 
    LEFT JOIN 
        propertyimage ON propertyimage.propertyid = property.id 
    LEFT JOIN 
        image on image.id = propertyimage.imageid 
    LEFT JOIN 
        review on review.propertyid = property.id 
    WHERE 
        rating = 1 
    GROUP BY propertyid

任何帮助都将不胜感激:)

十进制(3,2)
?如果内部选择返回1.5,那么是的,你的
where
将根本不匹配。切换你的where让我现在看到问题了。谢谢Marc,有没有办法关注外部查询字段的结果?还是我只能使用内部查询值?您应该使用rating>1