Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql查询,获取平均结果_Mysql_Mysqli_Fetch_Average - Fatal编程技术网

Mysql查询,获取平均结果

Mysql查询,获取平均结果,mysql,mysqli,fetch,average,Mysql,Mysqli,Fetch,Average,所以我得到了这个查询,可以从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 ($stm

所以我得到了这个查询,可以从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不生成任何数据。

您的意思是:

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.visted DESC
,我已经将其集成到查询中。

好的,让我们进一步。。。通过左连接,这意味着不是所有的狗诊所都有一些“得分”评级。。。如果是这样,该值将为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;

是不是应该是
s.avgscore DESC,dog_clinic.visited DESC
?语句似乎还可以,我使用的是mysqli类,我不知道如何绑定avgscore的结果,我需要它作为php代码的结果。您得到的错误消息是什么?它仍然没有从avgscore获取数据,在上面的窗口中我发布了whole语句。所以它工作得很好,你们真是太棒了。顺便说一句,我不知道你可以这样缩短名字,很好。是的。。。它们被称为“别名”。如果您正在进行自联接,或者出于任何目的多次联接到同一个表,那么您可以使用Emp1和Emp2之类的Employee表,例如谁是该人员,谁是其主管。