Чтобы получить именно тот набор результатов, который вы ищете, запрос уродлив и не очень масштабируем (например, если у вас было 100 пользовательских типов), но здесь вы идете
select
u.username,
isnull(ut1.Usertypeid,0) as Type1,
isnull(ut2.Usertypeid,0) as Type2,
isnull(ut3.Usertypeid,0) as Type3,
isnull(ut4.Usertypeid,0) as Type4,
isnull(ut5.Usertypeid,0) as Type5,
isnull(ut6.Usertypeid,0) as Type6
from
users u
left outer join
userstype ut1 on u.userid = ut1.userid and ut1.usertypeid = 1
left outer join
userstype ut2 on u.userid = ut2.userid and ut2.usertypeid = 2
left outer join
userstype ut3 on u.userid = ut3.userid and ut3.usertypeid = 3
left outer join
userstype ut4 on u.userid = ut4.userid and ut4.usertypeid = 4
left outer join
userstype ut5 on u.userid = ut5.userid and ut5.usertypeid = 5
left outer join
userstype ut6 on u.userid = ut6.userid and ut6.usertypeid = 6
EDIT
Как только вы дойдете до своего 10-го типа, надеюсь, здравый смысл вступит в силу (надеюсь, до 10-го), и вы подумаете про себя это не может продолжаться!
Когда это произойдет, вам лучше будет сделать запрос, как это
select
u.username,
ut..Usertypeid
from
users u
left outer join
userstype ut
on u.userid = ut.userid
Затем вы получите набор результатов, который выглядит как
Username | UserTypeID
---------------------
Joe | 3
Joe | 4
, который вам придется пройти через клиентскую часть, НО это намного лучше для вашего сервера баз данных и вашего здравомыслия!