使用另一个表中的数据从mysql表中选择
我需要从我的用户表中选择结果,并按照存储在rtgitems中的评级对它们进行排序。在用户表中,每个用户都有一个唯一的ID,用于项目列中的rtgitems,如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
像这样的查询应该返回指定的结果集:
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表分别给出的简称u
和r
,对这些表中列的引用前面带有别名和点(句点)
问题是,在用户的id字段中,它只是一个数字,但在rtgitems中它是rt_,然后是数字 –
,不会产生任何结果 –
没关系,这只是因为id字段实际上是user_id ,所以我明白了,谢谢你的帮助 –
已尝试搜索多次 – Chris78
我做了,找不到任何东西,我总是在发帖之前先做一个搜索 –
你只需要使用一个内部连接,你有什么尝试? – enl8enmentnow