diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.QueryBuilding.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.QueryBuilding.cs index 22a03dafa7..812b6ab59c 100644 --- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.QueryBuilding.cs +++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.QueryBuilding.cs @@ -439,11 +439,11 @@ public sealed partial class BaseItemRepository || (e.TopParentId.HasValue && f.ItemId == e.TopParentId.Value)))); } - // Exclude alternate versions from counts. Alternate versions have - // OwnerId set (pointing to their primary) but no ExtraType. + // Exclude alternate versions and owned non-extra items from counts. + // Alternate versions have PrimaryVersionId set (pointing to their primary). if (!filter.IncludeOwnedItems) { - baseQuery = baseQuery.Where(e => e.OwnerId == null || e.ExtraType != null); + baseQuery = baseQuery.Where(e => e.PrimaryVersionId == null && (e.OwnerId == null || e.ExtraType != null)); } return baseQuery; diff --git a/Jellyfin.Server.Implementations/Item/BaseItemRepository.TranslateQuery.cs b/Jellyfin.Server.Implementations/Item/BaseItemRepository.TranslateQuery.cs index f7f48278db..c1c7e6cd95 100644 --- a/Jellyfin.Server.Implementations/Item/BaseItemRepository.TranslateQuery.cs +++ b/Jellyfin.Server.Implementations/Item/BaseItemRepository.TranslateQuery.cs @@ -721,10 +721,10 @@ public sealed partial class BaseItemRepository } else if (filter.OwnerIds.Length == 0 && filter.ExtraTypes.Length == 0 && !filter.IncludeOwnedItems) { - // Exclude alternate versions from general queries. Alternate versions have - // OwnerId set (pointing to their primary) but no ExtraType. - // Extras (trailers, etc.) also have OwnerId but DO have ExtraType set - keep those. - baseQuery = baseQuery.Where(e => e.OwnerId == null || e.ExtraType != null); + // Exclude alternate versions and owned non-extra items from general queries. + // Alternate versions have PrimaryVersionId set (pointing to their primary). + // Extras (trailers, etc.) have OwnerId set but also have ExtraType set - keep those. + baseQuery = baseQuery.Where(e => e.PrimaryVersionId == null && (e.OwnerId == null || e.ExtraType != null)); } if (filter.OwnerIds.Length > 0)