使用一个表而不是两个

时间:2017-05-14 16:58:28

标签: mysql sql select

显示某些信息时出现问题。我的老师让我更改了我的数据库,这对我的应用程序产生了很大的影响。

我在MySql中有一个表,其中包含“user_id”,“lastname”和“recruiter_id”列。 recruiter_id对应于招募者的user_id。 例如:

user_id  lastname  recruiter_id
1        DO        NULL
2        SMITH     1
3        ROBERT    1

在MySql中,我想显示招聘人员的姓名。 例如,对于user_id = 3,我想显示名称“DO”,因为“robert”的recruiter_id是1,而1对应于“DO”的user_id。

在我的老师问我之前,我有两张不同的桌子,而且更容易。现在我不知道该怎么办。我该如何做到这一点?

2 个答案:

答案 0 :(得分:1)

这需要self-join

SELECT    a.lastname AS name, b.last_name as recuirter_name
FROM      users a
LEFT JOIN users b ON a.recruiter_id = b.user_id

答案 1 :(得分:1)

您可以使用左连接轻松完成此操作:

select u.*,
    r.lastname as recruiter_name
from your_table u
left join your_table r on u.recruiter_id = r.user_id;