¿Por qué mi unión izquierda no devuelve nulos?
En sql server 2008, tengo la siguiente 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
Estoy tratando de obtener elementos en sus subcategorías, pero todavía quiero devolver un registro si no hay elementos en la categoría o subcategoría. Las subcategorías que no tienen artículos nunca se devuelven. ¿Qué estoy haciendo mal?
Gracias
EDITAR
Consulta modificada con una segunda unión izquierda y cláusula where, pero todavía no devuelve nulos. : /
EDITAR 2
Se movió siteid al elemento dejado unirse. Cuando hago esto, obtengo muchos más registros de lo esperado. Algunos elementos tienen un siteid nulo y solo quiero incluirlos cuando tienen una identificación específica.
EDITAR 3
Estructura de la mesa:
Categories Table
-------
CategoryID
Title
SubCategories Table
-------
SubCategoryID
CategoryID
Title
ItemCategories Table
-------
ItemCategoryID
ItemID
SubCategoryID
IsActive
Items Table
--------
ItemID
Title
SiteID