-1

我需要从我的用户表中选择结果,并按存储在 rtgitems 中的评级对它们进行排序。在 users 表中,每个用户都有一个唯一的 ID,该 ID 在 item 列的 rtgitems 中使用,例如这个 rt_(来自 users 表的 ID)。

这是我用来从用户表中选择的代码:

$result = mysqli_query($con,"SELECT * FROM users WHERE `approved` = 1 ORDER BY ");

这是从 rtgitems 表中获取评级的代码

SELECT `item`
       , (`totalrate` / `nrrates`) AS `rank` 
FROM `rtgitems` 
ORDER BY (`totalrate` / `nrrates`) DESC
4

1 回答 1

1

像这样的查询应该返回指定的结果集:

SELECT u.*
     , r.totalrate/r.nrrates AS `rank`
  FROM users u
  JOIN rtgitems r
    ON r.user_id = u.id
 WHERE u.approved = 1
 ORDER BY r.totalrate/r.nrrates DESC, u.id ASC

简而言之:JOIN运算符指定两个表(users 和 rtgitems)中的行应该基于ON子句中的谓词“匹配”。

每当查询中引用了多个表时,最佳实践是限定所有列引用。为每个表引用分配一个唯一的别名通常是最简单的。(这是用户表urrtgitems 表的简称。对这些表中列的引用以别名和点(句点)开头。

于 2013-07-16T22:51:17.090 回答