我的数据库表'user'具有以下详细信息
---------------------------------------
id | username | ref | email
---------------------------------------
1 | name1 | 0 | email@email.com
2 | name2 | 0 | email@email.com
3 | name3 | 0 | email@email.com
4 | name4 | 3 | email@email.com
5 | name5 | 3 | email@email.com
6 | name5 | 3 | email@email.com
---------------------------------------
这意味着id 3是4,5,6的推荐者 我的问题是如何选择id 4,5&的名称。 6使用id 3
答案 0 :(得分:1)
使用自我加入
select u1.*, u2.username as ref_name
from user u1
left join user u2 on u1.ref = u2.id
答案 1 :(得分:0)
为什么不能使用像
这样的普通WHERE
子句
select username from tbl where ref=3;
如果您需要列出的用户名,请考虑使用group_concat()
和group by
参考列
select group_concat(username)
from tbl1
group by ref;
对我而言,您希望下面的内容与where ref = 3
select id, username
from tbl1
where id in (select distinct id from tbl1 where ref = 3);
答案 2 :(得分:0)
select * from user u1
left join user u2 on u2.ref = u1.id
where u1.id = 3