假设我有一个名为联系人的 MySQL 表。它看起来像这样:
+----------+
|contacts |
+----------+
|id: int |
|name: vc |
|rank: int |
+----------+
'rank' 是映射到名为 rank 的表的外键,如下所示:
+--------+
|ranks |
+--------+
|id: int |
|name: vc|
+--------+
我做了一个看起来像这样的 sql 查询,希望我能为每个用户获得一个排名,但它只给了我第一个匹配排名的用户:
SELECT c.id, c.name, c.rank, r.name as rank_name FROM contacts c
INNER JOIN ranks r ON r.id=c.rank
在我看来,这将是获取联系人列表的正确 SQL 语句,其中还包含他们各自的等级名称。但是,每个等级我只能取回一个联系人,而且它始终是第一个联系人(如果按contact.id 排序)。
有什么解决办法吗?也许我错过了一些太容易的东西。我不知道。
谢谢!
编辑
根据请求,以下是一些行:
Table: ranks
id name
6 Primary
7 Secondary
10 Test
Table: contacts
id name rank
1 Joe 6
2 Jane 6
3 Mike 7
4 Adam 10
5 Edna 7