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