用于在一条记录中检索多封电子邮件的SQL查询

时间:2018-11-09 01:07:58

标签: sql row

我有这些表

| idEmail   | idPerson | email     |  
|   213     |     1    |abc@abc.com|
|   214     |     2    |def@abc.com|
|   215     |     2    |fed@abc.com|

| idPerson   | name | lastName     | 
|     1      | Joe  |    Black     | 
|     2      | Will |    Smith     | 

我想为每个人检索一条记录,显示所有这样的邮件地址:

| Name   | lastName | email 1   |  email 2  | 
| Joe    |  Black   |abc@abc.com|           |
| Will   |  Smith   |def@abc.com|fed@abc.com|

2 个答案:

答案 0 :(得分:0)

您可以尝试使用JOIN然后执行条件聚合函数。

SELECT  Name,
        lastName,
        MAX(CASE WHEN t1.idPerson = 1 then email end) 'email 1',      
        MAX(CASE WHEN t1.idPerson = 2 then email end) 'email 2'
FROM t1 JOIN t2 on t1.idPerson = t2.idPerson 
group by  Name,lastName 

答案 1 :(得分:0)

您也可以查看PIVOT语句,或将一组电子邮件用逗号或其他定界符放在一栏中