如果电子邮件被列入黑名单,我希望以下查询的结果为Y,否则运行内部查询并返回特定设施名称。
printf("Output Pipe\n");
如果emailBlacklisted在Domain表中为N,则查询返回与RESULT相同的内部查询。请帮忙
答案 0 :(得分:1)
通常情况下,您只需返回设施名称即可:
select f.facilityname
from facility f inner join
domainfacility df
on a.facility_ID = b.facility_facility_ID inner join
domain d
on df.domain_Domain_ID = d.Domain_ID
where f.facilitystatus = 'A' and d.DomainName = 'cd.com'
where d.DomainName = 'cd.com' and d.EmailBlacklisted <> 'Y';
然后,如果没有返回任何内容,则表明被列入黑名单。您只需返回Y
这样的名称:
select (case when d.EmailBlacklisted = 'Y' then 'Y' else f.facilityname end)
from facility f inner join
domainfacility df
on a.facility_ID = b.facility_facility_ID inner join
domain d
on df.domain_Domain_ID = d.Domain_ID
where f.facilitystatus = 'A' and d.DomainName = 'cd.com'
where d.DomainName = 'cd.com';
但这似乎是将名称与旗帜混合的奇怪混淆。
答案 1 :(得分:0)
试试这个:
SELECT IF(d.EmailBlacklisted = 'Y', 'Y', a.facilityname)
FROM domain d
LEFT OUTER JOIN domainfacility b ON b.domain_Domain_ID = d.Domain_ID
LEFT OUTER JOIN facility a ON b.facility_facility_ID = a.facility_ID AND a.facilitystatus = 'A'
WHERE d.DomainName= 'cd.com';