使用另一个表中的数据从mysql表中选择

问题描述:

我需要从我的用户表中选择结果,并按照存储在rtgitems中的评级对它们进行排序。在用户表中,每个用户都有一个唯一的ID,用于项目列中的r​​tgitems,如rt_(来自users表的ID)。使用另一个表中的数据从mysql表中选择

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

$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 
+0

已尝试搜索多次 – Chris78

+0

我做了,找不到任何东西,我总是在发帖之前先做一个搜索 –

+0

你只需要使用一个内部连接,你有什么尝试? – enl8enmentnow

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

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运算符根据ON子句中的谓词指定来自两个表(用户和rtgitems)的行应该“匹配”。

每当在查询中引用多个表时,最佳做法是限定所有列引用。为每个表引用分配一个唯一的别名通常是最简单的。 (这是对用户表和rtgitems表分别给出的简称ur,对这些表中列的引用前面带有别名和点(句点)

+0

问题是,在用户的id字段中,它只是一个数字,但在rtgitems中它是rt_,然后是数字 –

+0

,不会产生任何结果 –

+0

没关系,这只是因为id字段实际上是user_id ,所以我明白了,谢谢你的帮助 –