如何从数据库中选择相同的数据

时间:2017-01-10 12:54:44

标签: mysql

我的数据库表'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

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