many-to-many name and role table --
create table t (name varchar, role varchar) ; 
insert into t (name, role) values ('joe', 'husband'), ('joe', 'father'),
    ('tom', 'husband'), ('neo', 'bachelor') ; 
> select * from t;
 name |   role   
------+----------
 joe  | husband
 joe  | father
 tom  | husband
 neo  | bachelor
need to convert into mapping of name and the role(s) he does not have --
not_a    | name
---------+-----------
husband  | neo
father   | tom
father   | neo
bachelor | joe
bachelor | tom
How to achieve that in true SQL without iterating through each role/name?
 
     
     
    