I am using Oracle SQL, so outer joins have the nice (+) syntax. I should warn you that I am not allowed to redesign the database; I work for a large organization.
He
If you really know the Oracel SQL syntax for a "proper" Oracle database, you could also do this...
SELECT p.Name,
a.Attribute
FROM people p,
(SELECT PersonID,
Attribute
FROM attributes
WHERE Attribute = 'Happy'
OR Attribute = 'Grouchy') a
WHERE p.personid = a.personid(+)
The point being that ANSI vs Oracle syntax is a ridiculous comment. Oracle supports both, you whichever is easier/better/manageable for you.