Почему мое левое соединение не возвращает нули?

В SQL Server 2008 у меня есть следующий запрос:

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

Я пытаюсь получить элементы в их подкатегориях, но я все еще хочу вернуть запись, если в категории или подкатегории нет элементов. Подкатегории, у которых нет элементов, никогда не возвращаются. Что я делаю неправильно?

Спасибо

РЕДАКТИРОВАТЬ

Модифицированный запрос со вторым левым соединением и предложением where, но он по-прежнему не возвращает нулевые значения. : /

РЕДАКТИРОВАТЬ 2

Перемещен siteid к элементу left join. Когда я делаю это, я получаю больше записей, чем ожидалось. Некоторые элементы имеют нулевой siteid, и я хочу включать их только тогда, когда они имеют определенный идентификатор.

РЕДАКТИРОВАТЬ 3

Структура таблицы:

Categories Table 
-------
CategoryID
Title

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

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

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

Ответы на вопрос(5)

Ваш ответ на вопрос