gpt4 book ai didi

php - 平均和比较左连接 MySQL

转载 作者:行者123 更新时间:2023-11-29 21:20:10 26 4
gpt4 key购买 nike

我正在尝试从 2 个不同的 MySQL 表中获取信息。

主表是这个:

primary sql table

从这个中,我使用这些信息来获取平均费率:

rating sql table

如何编写一个 SQL 查询,通过计算 rating_house = house_id 的所有行来获得平均评级,并按最高评级排序(如果相等)评分,评分最高的评分。

这是我自己想出的:

$sql = "SELECT l.location_address, "
. "r.rating_structure+r.rating_inventory+r.rating_service/3 AS average "
. "FROM houses h "
. "LEFT JOIN rating r ON h.house_id = r.rating_house "
. "LEFT JOIN location l ON h.house_address = l.location_id "
. "WHERE h.house_deleted IS NULL SORT BY average DESC LIMIT 10";
$result = $db_connect->prepare($sql);
if($result->execute()){
while($user_data = $result->fetch(PDO::FETCH_ASSOC)){
$user_data['location_address']."<br>";
}
}

但是我没有得到任何输出?

最佳答案

为了提高性能,如果您知道相关行必须存在,请使用 INNER JOIN 而不是 LEFT JOIN。

SELECT l.location_address,
(SUM(r.rating_structure)+SUM(r.rating_inventory)+SUM(r.rating_service))/3 AS average
FROM houses h
INNER JOIN rating r ON h.house_id = r.rating_house
INNER JOIN location l ON h.house_address = l.location_id
WHERE h.house_deleted IS NULL
GROUP BY l.location_address
ORDER BY 2,
(SUM(r.rating_structure)+SUM(r.rating_inventory)+SUM(r.rating_service)) DESC
LIMIT 10

关于php - 平均和比较左连接 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35755036/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com