Warum gibt mein linker Join keine Nullen zurück?

In SQL Server 2008 habe ich die folgende Abfrage:

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

Ich versuche, Elemente in ihren Unterkategorien abzurufen, möchte jedoch trotzdem einen Datensatz zurückgeben, wenn die Kategorie oder Unterkategorie keine Elemente enthält. Unterkategorien ohne Artikel werden niemals zurückgegeben. Was mache ich falsch?

Danke

BEARBEITEN

Geänderte Abfrage mit einer zweiten Left-Join- und Where-Klausel, die jedoch keine Nullen zurückgibt. : /

BEARBEITEN 2

Site-ID wurde in den linken Element-Join verschoben. Wenn ich das mache, bekomme ich weit mehr Datensätze als erwartet. Einige Elemente haben eine Null-Site-ID und ich möchte sie nur einschließen, wenn sie eine bestimmte ID haben.

EDIT 3

Tabellenstruktur:

Categories Table 
-------
CategoryID
Title

SubCategories Table
-------
SubCategoryID
CategoryID
Title

ItemCategories Table
-------
ItemCategoryID
ItemID
SubCategoryID
IsActive

Items Table 
--------
ItemID
Title
SiteID