我有一张桌子,每个人的电子邮件地址只有一次在他们的会员ID旁边,但我想创建在同一行中拥有领导电子邮件地址的列。
表1
+-----------+--------+----------+----------+---------+
| member_id | name | Email | Dir_ID | Leader_ID|
+-----------+--------+----------+----------+----------
| 105 | Andri | em100 | 106 | 110 |
| 106 | Steve | em10 | Null | Null
| 110 | Soraya | em101 | 110 | 110
| 111 | Eva | em20 | 110 | 105
| 112 | Sonia | em40 | 105 | 111
我正在努力完成以下
查询/生成表
+-----------+--------+----------+----------+-------------+
| member_id | name | Email | Dir_Email| Leader_EMail|
+-----------+--------+----------+----------+-------------+
| 105 | Andri | em100 | em10 | em101 |
| 106 | Steve | em10 | Null | Null
| 110 | Soraya | em101 | em10 | em10
| 111 | Eva | em20 | em101 | em100
| 112 | Sonia | em40 | em100| em20
任何从哪里开始的信息将不胜感激。我正在考虑创建一个昏暗的表,然后做一些连接,但想到必须有一个更简单的方法。
答案 0 :(得分:2)
您可以使用基于自联接的层次关系
select a.member_id, a.name, a.Email, b.Dir_Email, a.Leader_ID
from myTable as a
left join my_table b on a.dir_id = b.member_id