it is called self-union. the trick is to use aliases.
select address.name, address.value as address, phone.value as phone from yourtable as address left join yourtable as phone on address.name = phone.name where address.type = 'address' and (phone.type is null or phone.type = 'phone')
The request assumes that each name has an address, but phone numbers are optional.
cdonner
source share