Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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_Sql Server - Fatal编程技术网

SQL筛选行/如果两个表之间的列中存在数据,则获取行数

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 )

我使用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
       )
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 . . . 如果这是你想要的,你可以接受答案。这很有效,非常感谢