【发布时间】:2016-03-02 18:15:55
【问题描述】:
我正在尝试从 2 个不同的 MySQL 表中获取信息。
主表是这个:
从这个我使用信息得到平均率:
我如何编写一个 SQL 查询,通过计算所有带有 rating_house = house_id 的行来获得 average 评级,并按最高评级排序,如果评级相同,则按最高评级排序。
这是我自己想出来的:
$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>";
}
}
但是我没有输出?
【问题讨论】:
-
请注意,MySQL(以及我所知道的所有 SQL 方言,包括 ANSI 标准)中用于排序结果的关键字是
ORDER BY,而不是SORT BY。