我有两张桌子,两者之间有一对多的关系。我的查询有 function update(field){
$('input[name=' + field + ']').val('50000');
//alert (field);
}
,我想确定第二个表中是否有符合某些条件的结果。我无法用子查询弄清楚并尝试使用以下代码,但它没有给出您期望的结果。
group by
基本上,我想知道我的邮件(可能包含多个附件)是否包含CASE WHEN
(SELECT SUM(CASE WHEN a.ContentId IS NULL THEN 1 ELSE 0 END)) > 0
THEN 1
ELSE 0
END as 'HasAttachments'
为ContentId
且null
大于{{count
的任何附件1}}然后我想在0
中返回boolean
值。
任何帮助都会很棒!
答案 0 :(得分:1)
CASE WHEN
SUM(CASE WHEN a.ContentId IS NULL
AND a.message_id IS NOT NULL
THEN 1
ELSE 0
END) > 0
THEN 1
ELSE 0
END as HasAttachments
从你的叙述来看,你的内心案例陈述似乎缺少另一个确定何时存在附件的条件。如果您没有将AttachmentTable.message_id IS Not NULL置于第二个条件,那么您将计算不具有任何附件的消息以及那些具有附件但没有内容ID的消息同样的事情。但是添加a.message_id可以限制你从叙述中看起来想要的情况。
答案 1 :(得分:0)
这是我可以用来表达查询的一种方式:
select m.*,
(case when exists (select 1 from attachments a where a.message_id = m.message_id and content_id is null
)
then 1 else 0
end) as HasAttachments
from messages m;
目前还不清楚为什么你的查询不起作用,没有其余查询的上下文。