【发布时间】:2020-06-20 15:48:23
【问题描述】:
我有两个名为 users 和 requests 的表,其结构如下:
用户:
+----+----------+------------------------+
| id | name | email |
+----+----------+------------------------+
| 1 | super | super@test.com |
+----+----------+------------------------+
| 2 | david | david@test.com |
+----+----------+------------------------+
| 3 | smith | smith@test.com |
+----+----------+------------------------+
| 4 | philip | philip@test.com |
+----+----------+------------------------+
请求:
+----+---------+----------------------+
| id | inviter | email |
+----+---------+----------------------+
| 1 | 1 | david@test.com |
+----+---------+----------------------+
| 2 | 2 | smith@test.com |
+----+---------+----------------------+
| 3 | 2 | philip@test.com |
+----+---------+----------------------+
现在我想加入这两个表来获取如下数据:
+----+----------+------------------------+-----------+
| id | name | email | inviter |
+----+----------+------------------------+-----------+
| 1 | super | super@test.com | null |
+----+----------+------------------------+-----------+
| 2 | david | david@test.com | super |
+----+----------+------------------------+-----------+
| 3 | smith | smith@test.com | david |
+----+----------+------------------------+-----------+
| 4 | philip | philip@test.com | david |
+----+----------+------------------------+-----------+
两个表将在email 属性上连接。并且结果表中的inviter 字段是存储在requests 表中inviter 属性下的对应id 的用户名。
我已经写了这个查询
select users.id as id, name, users.email as email, name, inviter
from users
left join requests on users.email = requests.email
产生以下结果
+----+--------+-----------------+--------+---------+
| id | name | email | name | inviter |
+----+--------+-----------------+--------+---------+
| 2 | david | david@test.com | david | 1 |
| 3 | smith | smith@test.com | smith | 2 |
| 4 | philip | philip@test.com | philip | 2 |
| 1 | super | super@test.com | super | NULL |
+----+--------+-----------------+--------+---------+
谁能帮我写一个查询来按预期获取数据?
【问题讨论】: