ВЫБРАТЬ СЧЕТЧИК (*) в запросе SQL - PullRequest
1 голос
/ 27 мая 2020

При преобразовании этого запроса LINQ join «один ко многим» ( Northwind образец базы данных):

from category in Categories
join product in Products
on category.CategoryID equals product.CategoryID
into productGroup
select new {
    CategoryName = category.CategoryName,
    ProductsList = from product in productGroup
                   select product.ProductName
};

в SQL, LINQPad / LINQ вводит a SELECT COUNT (*) в объединенной таблице:

SELECT [t0].[CategoryName], [t1].[ProductName], (
    SELECT COUNT(*)
    FROM [Products] AS [t2]
    WHERE ([t0].[CategoryID]) = [t2].[CategoryID]
    ) AS [value]
FROM [Categories] AS [t0]
LEFT OUTER JOIN [Products] AS [t1] ON ([t0].[CategoryID]) = [t1].[CategoryID]
ORDER BY [t0].[CategoryID], [t1].[ProductID]

Какова причина подсчета объединенных продуктов? Результат вроде не используется.

...