Php 如何获得按评级描述排序的记录
我有两张桌子,即招待所和评级。如何通过两个表格中的评分来显示记录顺序。我可以请您对此给出一些想法吗Php 如何获得按评级描述排序的记录,php,mysql,Php,Mysql,我有两张桌子,即招待所和评级。如何通过两个表格中的评分来显示记录顺序。我可以请您对此给出一些想法吗 |------------------------------|------------------------------------| | hotel table is | rating table is | |------------------------------|----------------------------
|------------------------------|------------------------------------|
| hotel table is | rating table is |
|------------------------------|------------------------------------|
|post_id | user_id | hostel |r_id | user_id | post_id | rating |
| 1 | 2 | xyz | 2 | 2 | 1 | 5 |
| 3 | 4 | abc | 4 | 4 | 1 | 3 |
| 5 | 6 | ijk | 5 | 6 | 6 | 4 |
| 6 | 7 | pqr | 6 | 7 | 6 | 5 |
| 8 | 8 | mno | 7 | 8 | 5 | 5 |
---------------------------------------------------------------------
请尝试以下查询:
$query = "SELECT * FROM hotel inner join rating ON hotel.post_id = rating.post_id ORDER BY rating.rating DESC";
大概是这样的:
select *
from hotel h join rating r
using (post_id, user_id)
order by rating desc;
尝试此操作请添加您的表名和查询,该编辑将您从大量的否决票中解救出来。不管怎样,我认为你只需要按评级说明排序,实际上有一些条件,例如:如果post_id是10,12,那么对于10,有20个用户给予5级评级,5个用户给予3级评级,对于12个用户,有5个用户给予5分,20个用户给予3分。在此情况下,显示顺序应与最高用户给予5分的顺序相同,即20个用户给予5分将是第一位的。实际上存在一些条件,例如:如果post_id为10,12,则对于10个用户,有20个用户给予5分,5个用户给予3分,对于12个用户,有5个用户给予5分,20个用户给予3分。在此情况下,显示顺序应与最高用户给予5分的顺序相同,即20个用户给予5分将是第一位的。实际上存在一些条件,例如:如果post_id为10,12,则对于10个用户,有20个用户给予5分,5个用户给予3分,对于12个用户,有5个用户给予5分,20个用户给予3分。在此情况下,显示顺序应与最高用户给予5分的顺序相同,即20个用户给予5分将首先签出此链接此链接也很有用:
$query = "SELECT * FROM hotel_table
LEFT JOIN rating_table ON hotel_table.post_id = rating_table.post_id
ORDER BY rating_table.rating DESC";