Это глупый макет для такого рода данных.
Чтобы ответить на ваш вопрос, хотя:
Присоедините таблицу к себе под разными псевдонимами.
Отфильтруйте каждую копию с псевдонимом по имени другого поля и представьте, что это разные таблицы.
Если вы делаете это часто, то может быть полезно создать представление на основе этого запроса, чтобы будущие запросы не были настолько многословными.
$querystr = "
SELECT
fname.sub_id
,fname.field_val as 'First Name'
,lname.field_val as 'Last Name'
,team.field_val as 'Team'
,dob.field_val as 'DOB'
,email.field_val as 'Email'
,phone.field_val as 'Phone'
FROM
$db->data fname
,$db->data lname
,$db->data team
,$db->data dob
,$db->data email
,$db->data phone
where fname.sub_id = lname.sub_id
and fname.sub_id = team.sub_id
and fname.sub_id = dob.sub_id
and fname.sub_id = email.sub_id
and fname.sub_id = phone.sub_id
and fname.field_name = 'First Name'
and lname.field_name = 'Last Name'
and team.field_name = 'Team'
and dob.field_name = 'DOB'
and email.field_name = 'EMail'
and phone.field_name = 'Telephone'
order by
ln.field_val
";