大量冗余数据,可能不一致。但是,如果我们假设
empid定义了名称并且其中
PhoneTable包含每个员工的条目,则查询可能如下所示。查询的第一部分将一个雇员的不同记录合并为一个记录;然后,左外部联接将获得相应的电子邮件。请注意,如果有员工拥有电子邮件但甚至没有一个电话号码,查询仍无法完成:
select *from (select empid, max(fullname), max(case when type='Fix' then Number else NULL end) as fix, max(case when type='Mobile' then Number else NULL end) as Mobile from PhoneTable group by empid) phone left outer join EMailTable e on phone.empid=e.empid



