I have a table structure like:
Table = contact
Name    Emailaddress    ID
Bill    [email protected]    1
James   [email protected]   2
Gill    [email protected]    3
Table = contactrole
ContactID   Role
1           11
1           12
1           13
2           11
2           12
3           12
I want to select the Name and Email address from the first table where the person has Role 12 but not 11 or 13. In this example it should return only Gill.
I believe I need a nested SELECT but having difficulty in doing this. I did the below but obviously it isn't working and returning everything.
SELECT c.Name, c.Emailaddress FROM contact c
WHERE (SELECT count(*) FROM contactrole cr
       c.ID = cr.ContactID
       AND cr.Role NOT IN (11, 13)
       AND cr.Role IN (12)) > 0
