这会返回Table
& Table2
中行数的复合,但我想只返回Table2
的计数,最好在ONE select语句中返回。多计数采用加盟?
SELECT Table.Name, Count(Table2.Active) FROM Table
LEFT JOIN Table2 ON Table2.Active = 1
建议?
这会返回Table
& Table2
中行数的复合,但我想只返回Table2
的计数,最好在ONE select语句中返回。多计数采用加盟?
SELECT Table.Name, Count(Table2.Active) FROM Table
LEFT JOIN Table2 ON Table2.Active = 1
建议?
写SELECT
子句中的查询:
SELECT Table.Name, (SELECT Count(Active) FROM Table2)
FROM Table
LEFT JOIN Table2 ON Table2.Active = 1
我没有改变你的表“加盟”,但它没有任何意义。
Downvoter,照顾评论? – gdoron 2012-04-22 03:50:23
为什么要拉第二个表的计数一次,在第一个表中的每一行?这是大大效率低下。好多做:
DECLARE @c INT;
SELECT @c = COUNT(*) FROM dbo.Table2;
SELECT Name, @c FROM dbo.Table;
没有,这不符合你的“单身声明”的要求,但我很好奇,为什么你认为这是一个良好的或有效的查询的措施。
您的加入没有意义 - 它不是传统意义上的连接记录,它创造了未经过滤的*笛卡尔乘积*。 – dasblinkenlight 2012-04-22 02:47:48