Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 基于值是否存在于另一个不相关表的任何记录中的自定义输出列_Sql_Case_Exists - Fatal编程技术网

Sql 基于值是否存在于另一个不相关表的任何记录中的自定义输出列

Sql 基于值是否存在于另一个不相关表的任何记录中的自定义输出列,sql,case,exists,Sql,Case,Exists,我有一大堆表格,我试图从每个表格中提取各种信息。我需要的一条信息是,客户是否订阅了时事通讯,但除了电子邮件地址之外,这两个表之间没有链接数据。因此,我试图显示一个自定义列(例如SubscribedToNewsletter),它显示Subscriptions.email值(即True/False)中是否存在客户的电子邮件地址 我已经尝试过使用CASE和EXISTS来根据另一个表的列中是否存在值来伪造自定义列,但它不会产生任何结果 SELECT CASE WHEN Subscriptions.Em

我有一大堆表格,我试图从每个表格中提取各种信息。我需要的一条信息是,客户是否订阅了时事通讯,但除了电子邮件地址之外,这两个表之间没有链接数据。因此,我试图显示一个自定义列(例如SubscribedToNewsletter),它显示Subscriptions.email值(即True/False)中是否存在客户的电子邮件地址

我已经尝试过使用
CASE
EXISTS
来根据另一个表的列中是否存在值来伪造自定义列,但它不会产生任何结果

SELECT 
CASE WHEN Subscriptions.Email = Customer.Email THEN 'True' ELSE 'False' END
FROM Customer
INNER JOIN Subscriptions ON 1=1
WHERE EXISTS (SELECT 1 FROM Customer WHERE Subscriptions.Email = Customer.Email)

使用相关子查询统计每个客户的订阅数:

select c.*,
       case when (select count(*) from Subscriptions s
                  where s.Email = c.Email) > 0 then 'True'
            else 'False'
       end
from customers c

太好了,谢谢!我意识到我犯的一个大错误是加入了这个表格,它给了我大约3000条记录(100条客户记录*30条订阅记录)。
select c.*,
       case when (select count(*) from Subscriptions s
                  where s.Email = c.Email) > 0 then 'True'
            else 'False'
       end
from customers c