SQL筛选行/如果两个表之间的列中存在数据,则获取行数
我使用SQL SERVER 2017 假设我们有以下两张表 提供者 主人 如果提供程序中存在master的列_b值,我想从提供程序获取所有ID的计数 输出应该是这样的 输出SQL筛选行/如果两个表之间的列中存在数据,则获取行数,sql,sql-server,Sql,Sql Server,我使用SQL SERVER 2017 假设我们有以下两张表 提供者 主人 如果提供程序中存在master的列_b值,我想从提供程序获取所有ID的计数 输出应该是这样的 输出 相关子查询看起来很合适。您的描述非常模糊(id是否也需要匹配?),但类似于: select m.*, (select count(*) from provider p where p.id = m.id and p.column_b = m.column_b )
相关子查询看起来很合适。您的描述非常模糊(id是否也需要匹配?),但类似于:
select m.*,
(select count(*)
from provider p
where p.id = m.id and p.column_b = m.column_b
)
from master m;
您可以使用
左连接
,如下所示:
Select m.id, count(p.id) as matched
From master m left join provider p
On p.id = m.id and p.column_b = m.column_b
Group by m.id
你试过什么吗?老实说,这看起来像是一个非常简单的
连接
和计数。为什么你的尝试没有成功?注意:对象有行和列,它们有一个值,而不是“记录”。此外,在“匹配的记录数”列中,应该如何实现这些值?示例提供程序和主表中没有任何内容解释1、0和0的值。我们需要根据ID匹配两个表,如果存在该列,则我需要计算匹配的数量。谢谢much@SaiVinayPalakodeti . . . 如果这是你想要的,你可以接受答案。这很有效,非常感谢