Mysql查询,获取avg结果

问题描述

| 所以我得到了这个查询,是否可以从avgscore获取MysqL结果?
SELECT * FROM dog_clinic
LEFT JOIN (SELECT AVG(score) AS avgscore,input_id
FROM dog_clinic_score GROUP BY input_id) s ON s.input_id = dog_clinic.id
ORDER BY avgscore DESC,visited DESC LIMIT 0,10
提前致谢 整个声明:
if ($stmt_dog_clinic = $MysqLi->prepare(\"SELECT dog_clinic.id,dog_clinic.name,dog_clinic.content,dog_clinic.city,dog_clinic.street,dog_clinic.picture,dog_clinic.visited,s.avgscore FROM dog_clinic LEFT JOIN (SELECT AVG(score) AS avgscore,input_id FROM dog_clinic_score GROUP BY input_id) s ON s.input_id = dog_clinic.id ORDER BY s.avgscore DESC,dog_clinic.visited DESC LIMIT 0,10\"))
 {
  $stmt_dog_clinic->bind_result($id,$name,$content,$city,$street,$picture,$visited,$avgscore);
  $stmt_dog_clinic->execute();
while ($stmt_dog_clinic->fetch())
{ echo $avgscore; }
$ avgscore dsn不产生任何数据。     

解决方法

        好的,让我们再进一步...通过左连接,这意味着并非所有的狗诊所都具有“得分”等级...如果是这样,则该值为NULL并可能导致其窒息。
SELECT
      dc.*,COALESCE( s.avgscore,0 ) FinalAvg
   FROM 
      dog_clinic dc
         LEFT JOIN ( SELECT dcs.input_id,AVG(dcs.score) AS avgscore
                        FROM 
                           dog_clinic_score dcs
                        GROUP BY 
                           dcs.input_id) s 
            ON dc.id = s.input_id
   ORDER BY 
      COALESCE( s.avgscore,0 ) DESC,dc.visited DESC 
   LIMIT 
      0,10;
    ,        您的意思是:
SELECT dog_clinic.*,s.avgscore FROM dog_clinic
LEFT JOIN (SELECT AVG(score) AS avgscore,input_id
FROM dog_clinic_score GROUP BY input_id) s ON s.input_id = dog_clinic.id
ORDER BY s.avgscore DESC,dog_clinic.visited DESC LIMIT 0,10;
我认为Rahul是正确的,它隐含为
s.avgscore DESC,dog_clinic.visited DESC
,我也将其集成到查询中。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...