来自第二个表的计数字段

时间:2021-07-28 22:05:15

标签: count having

这是我正在尝试做的示例:

select
t1.Field1
t1.Field2
from Table1 t1
inner join Table2 t2 on t2.Field1 = t1.Field1
where
t1.Field3 like '123-%'
and t1.CreateDate >= '01/01/2021'
having
Count(t2.Field4 = 419) >= 1

2 桌 表 1 具有带 ID 的唯一记录(字段 1) 表 2 有多个记录,也有 ID 字段 1。表 2 可能有字段 1 的 10、20 等记录。我想提取 Table1 记录,其中 Table2 至少出现 1 次 Field4 = 419。Table2 可能没有任何 Field4=419,它可能有 1,也可能有 2 个或更多。

我认为很直接,但不幸的是,我是 SQL 编写的新手,这就是我为什么要发布以寻求帮助的原因,因为我已经尝试了多种方法来使其正常工作,但没有任何运气。

1 个答案:

答案 0 :(得分:0)

通常在查询中有 having 时使用 group by

将有多种编写您想要的内容的方法,但我认为很容易理解的一种方法是从 Table1 中选择并在 where 子句的子查询中执行 Table2 的计数。根据表的大小和索引,您可能想探索其他选项,但我认为这至少是一个很好的起点,可以满足您的需求。

select
 t1.Field1
 t1.Field2
from Table1 t1
where
 t1.Field3 like '123-%'
 and t1.CreateDate >= '01/01/2021'
 and (SELECT count(*) FROM Table2 t2 WHERE t2.Field1 = t1.Field1 AND t2.Field4 = 419) >= 1
相关问题