使用一个表而不是两个
我有一个问题来显示一些信息。我的老师让我更换我的数据库,这对我的应用程序有很大的影响。使用一个表而不是两个
我在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。
在我的老师问我这个之前,我有两张不同的表格,而且这很容易。现在我不知道如何继续。我该如何做到这一点?
这需要一个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
您可以轻松地做到这一点使用左自联接:
select u.*,
r.lastname as recruiter_name
from your_table u
left join your_table r on u.recruiter_id = r.user_id;
请不要教新手别名表到单个字母的名称。这是一个非常糟糕的做法。 –
@tereško - 嗯,这取决于。如果它可以是有意义的,我更喜欢更小的别名。在这种情况下,u - 用户,r - 招聘人员。 – GurV
简短的原因:它没有规模。而且你总是不得不努力使代码更具可读性,因为你倾向于阅读和编辑旧代码,而不是编写新代码。 –
请不要教新手别名表,单字母域名。这是一个非常糟糕的做法。 –
我要试试这个,我只用其他表加入... – saga
你有什么建议@tereško? – saga