MySQL在结果集上的条件相同的表上写选择子查询

时间:2018-10-10 07:58:38

标签: mysql subquery

我想从用户表中获取所有数据,其中createdBy填充了名称匹配的用户ID。

表示

  

我不想显示具有ID的createdBy列,而是要显示createdBy   通过用户名查询名称。有没有可能。请帮助我。

表:用户

This is what i get

enter image description here

  

这就是我需要的

enter image description here

2 个答案:

答案 0 :(得分:1)

This应该可以解决问题。您可以在匹配的用户ID上将表与其自身(实际上仅包含userid和name字段,以避免与原始createdBy字段冲突)联接起来,然后仅选择相关字段

SELECT u.userId, u.name, sj.createdBy
FROM users u JOIN (SELECT userId, name AS createdBy FROM users) AS sj
ON u.createdBy = sj.userId

答案 1 :(得分:1)

使用自我加入

demo

 select a.*,b.name as createdbyname from user a left join user b 
 on b.id=a.createdby