我有一个用户表,电子邮件表和关系电子邮件表。有些用户拥有多个电子邮件地址。 使用时
select U.Id,U.Name,E.Name from RelationalEmail AS RE
INNER JOIN Email AS E ON E.Id = RE.EmailId
INNER JOIN User AS U ON U.Id=RE.userId
当然,我得到的结果如下:
UserId Name Email
1 Olcay abc@.com
1 Olcay acc@.com
2 John jhn@.com
2 John hnJ@.com
但我不想重复用户, 我试着得到一个结果:
UserId Name Email
1 Olcay abc@.com, acc@.com
2 John jhn@.com, hnJ@.com
我的人员表:
UserId Name
1 Olcay
2 John
我的电子邮件表:
EmailId Name
7 abc@.com
8 acc@.com
9 jhn@.com
10 hnJ@.com
我的RelationalEmail表:
Id userId EmailId
1 1 7
2 1 8
3 2 9
4 2 10
我的老师说我应该用XPath做到这一点。但我不知道XPath。我搜索过但我无法找到问题的答案,或者我无法理解。
提前致谢
答案 0 :(得分:1)
如果每个emails
总是两个name
,那么这是一种方式
select UserId,
Name,
Email = Min(Email),
Email2 = Max(Email)
From yourtable
Group by UserId,
Name
如果每N
个emails
个name
,则需要dynamic pivot
。