这将返回Table
&中行数的计数。 Table2
复杂,但我想仅返回Table2
的计数,最好是在一个选择语句中。
SELECT Table.Name, Count(Table2.Active) FROM Table
LEFT JOIN Table2 ON Table2.Active = 1
建议?
答案 0 :(得分:2)
为什么要为第一个表中的每一行从第二个表中提取一次计数?这非常低效。好多了:
DECLARE @c INT;
SELECT @c = COUNT(*) FROM dbo.Table2;
SELECT Name, @c FROM dbo.Table;
不,这不符合您对“单一陈述”的要求,但我很好奇为什么您认为这是衡量一个好的或有效的查询的方法。
答案 1 :(得分:1)
在SELECT
子句中写下查询:
SELECT Table.Name, (SELECT Count(Active) FROM Table2)
FROM Table
LEFT JOIN Table2 ON Table2.Active = 1
我没有更改你的表“加入”,但它没有任何意义。