Mam taki widok:
CREATE VIEW vProductHeaders
WITH SCHEMABINDING
AS
SELECT p.[Id], p.[Name], p.[Price], p.[Discount], p.[CategoryId], COUNT_BIG(r.[ProductId]) as [RateCount], SUM(r.[Stars]) as [RateSum]
FROM dbo.[Products] p
LEFT JOIN dbo.[Rates] r
ON p.[Id] = r.[ProductId]
GROUP BY p.[Id], p.[Name], p.[Price], p.[Discount], p.[CategoryId];
GO
W trakcie próby utworzenia indeksu leci błąd, że się nie da, bo left join
. Używam tego widoku do wyszukiwania produktów. Jeśli produkt nie ma żadnej oceny, to nie pojawi się na liście w przypadku inner joina
, czyli przy tworzeniu produktu muszę mu nadać jakąś początkową ocenę, co jest trochę słabe. Jest jakieś walkaround tego?