【发布时间】:2016-05-20 11:02:17
【问题描述】:
我有一个类似的表结构:
Table = contact
Name Emailaddress ID
Bill bill@abc.com 1
James james@abc.com 2
Gill gill@abc.com 3
Table = contactrole
ContactID Role
1 11
1 12
1 13
2 11
2 12
3 12
我想从第一个表中选择姓名和电子邮件地址,其中该人的角色为 12 但不是 11 或 13。在此示例中,它应该只返回 Gill。
我相信我需要一个嵌套的 SELECT,但很难做到这一点。我做了以下操作,但显然它不起作用并返回所有内容。
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
【问题讨论】: