我有一个名为'Domains'的表。列A(域名)包含各种域名的列表。 B列(状态)包含它的'状态'。状态可以是活动,结束,阻止,取消。域名可以不止一次列在列A中,并且不限于仅具有一种类型的状态。请注意,如果域A在列A中列出不止一次,并且其每个实例的状态为“已取消”,则该域的所有实例都应出现在结果中。
我想提取一份“仅”取消状态的所有域名列表。他们不能取消状态,还有其他类型的状态。在下面的示例中,它应仅返回domain5.com。
域名
Domain1.com
Domain2.com
Domain1.com
Domain4.com
Domain5.com
状态
积极的
结束
取消了
被阻止的
取消了
非常感谢!
答案 0 :(得分:0)
SELECT DISTINCT domainname FROM DomainsTable
WHERE
Status = 'Canceled'
答案 1 :(得分:0)
您可以使用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'
)
答案 2 :(得分:0)
尝试使用以下sql查询:
select Domainnames from Domains
where Status ='cancelled' AND
Domainnames NOT IN (SELECT Domainnames from Domains where Status <> 'cancelled')
答案 3 :(得分:0)
试试这个:
select * from domains d
where d.status = 'cancelled' and
( select count(*) from domains where domainnames = d.domainesnames) = 1 ;
如果count equals to 1
表示d.domainnames
只有一行,即选择查询中的当前行。