我有一个名为“域”的表。列A(域名)包含各种域名的列表。列B(状态)包含它的“状态”。状态可以是活动、已结束、已阻止或已取消。一个域名可以在A列中多次列出,且不限于只有一种状态。请注意,如果某个域多次在A列中列出,并且它的每个实例的状态都为“已取消”,则该域的所有实例都应出现在结果中。
我想拉出一个列表的所有域名的‘唯一’的状态已取消。他们不能有取消的状态,也不能有其他类型的状态。在下面的示例中,它应该只返回domain5.com。
域名
Domain1.com
Domain2.com
Domain1.com
Domain4.com
Domain5.com
状态
活动的
结束
已取消
已阻止
已取消
非常感谢!
发布于 2012-07-03 13:53:02
SELECT DISTINCT domainname FROM DomainsTable
WHERE
Status = 'Canceled'发布于 2012-07-03 13:54:09
您可以使用not exists子句来要求同一域没有处于另一状态的行:
select *
from Domains d1
where status = 'cancelled'
and not exists
(
select *
from Domains d2
where d1.domainname = d2.domainname
and d2.status <> 'cancelled'
)发布于 2012-07-03 14:03:26
尝试使用以下sql查询:
select Domainnames from Domains
where Status ='cancelled' AND
Domainnames NOT IN (SELECT Domainnames from Domains where Status <> 'cancelled')https://stackoverflow.com/questions/11305154
复制相似问题