Por que minha associação à esquerda não retorna nulos?
No sql server 2008, tenho a seguinte consulta:
select
c.title as categorytitle,
s.title as subcategorytitle,
i.title as itemtitle
from categories c
join subcategories s on c.categoryid = s.categoryid
left join itemcategories ic on s.subcategoryid = ic.subcategoryid
left join items i on ic.itemid = i.itemid and i.siteid = 132
where (ic.isactive = 1 or ic.isactive is null)
order by c.title, s.title
Estou tentando obter itens em suas subcategorias, mas ainda quero retornar um registro se não houver itens na categoria ou subcategoria. Subcategorias que não possuem itens nunca são retornadas. O que estou fazendo errado?
Obrigado
EDITAR
Consulta modificada com uma segunda junção esquerda e cláusula where, mas ainda não está retornando nulos. : /
EDIT 2
ID do site movido para o item deixado à esquerda. Quando faço isso, recebo muito mais registros do que o esperado. Alguns itens têm um ID do site nulo e só quero incluí-los quando tiverem um ID específico.
EDIT 3
Estrutura da tabela:
Categories Table
-------
CategoryID
Title
SubCategories Table
-------
SubCategoryID
CategoryID
Title
ItemCategories Table
-------
ItemCategoryID
ItemID
SubCategoryID
IsActive
Items Table
--------
ItemID
Title
SiteID