-1

Table这将返回&复合中的行数的计数Table2,但我想只返回 的计数Table2,最好在 ONE select 语句中返回。

 SELECT Table.Name, Count(Table2.Active) FROM Table
 LEFT JOIN Table2 ON Table2.Active = 1

建议?

4

2 回答 2

2

为什么要为第一个表中的每一行从第二个表中提取一次计数?这是非常低效的。更好的做法:

DECLARE @c INT;
SELECT @c = COUNT(*) FROM dbo.Table2;
SELECT Name, @c FROM dbo.Table;

不,这不符合您对“单一语句”的要求,但我很好奇为什么您认为这是一个良好或有效查询的衡量标准。

于 2012-04-22T03:14:53.110 回答
1

SELECT子句中编写查询:

SELECT Table.Name, (SELECT Count(Active) FROM Table2) 
FROM Table
 LEFT JOIN Table2 ON Table2.Active = 1

我没有改变你的表“加入”,但这没有任何意义。

于 2012-04-22T02:46:06.780 回答