select my_aspnet_users.name
FROM my_aspnet_users
left join my_aspnet_membership
on my_aspnet_users.id = my_aspnet_membership.userId
where my_aspnet_membership.IsApproved = 1
You messed up the table name of the table being left joined. It will now include all records from users, regardless if there is a matching membership or not. To make it match both do an inner join.