根据现有表的条件创建新列

时间:2016-11-16 19:25:27

标签: mysql sql join where

我有一张桌子,每个人的电子邮件地址只有一次在他们的会员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

任何从哪里开始的信息将不胜感激。我正在考虑创建一个昏暗的表,然后做一些连接,但想到必须有一个更简单的方法。

1 个答案:

答案 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