-1

これは、Table& compoundedの行数のカウントを返しますが、できれば1つのselectステートメントでTable2のカウントだけを返したいと思います。Table2

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

提案?

4

2 に答える 2

2

最初のテーブルの行ごとに1回、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 に答える