Intereting Posts

Доктрина: запрос только там, где отношения не существуют?

У меня есть две таблицы: статьи и категории. У статей может быть назначена одна категория. Но у них нет категории.

Схема:

Article: columns: title: type: string(255) content: type: string(255) category_id: type: integer(4) Category: columns: name: type: string(255) article_id: type: integer(4) relations: Article: class: Article local: article_id foreign: id foreignAlias: ArticleCategories 

Я могу запросить для всех статей, которым присвоены категории, как это:

 $articles= Doctrine_Query::create() ->from('Article a') ->leftJoin('a.Category c ON c.article_id = a.id') ->where('c.id > 0') ->execute(); 

Он возвращает это:

 Object->Array ( [0] => Array ( [id] => string(1) "1" [title] => string(4) "test" [content] => string(4) "test" [Category] => Array ( [0] => Array ( [id] => string(1) "2" [name] => string(7) "testing" ) ) ) etc... 

Мне нужно сделать запрос для статей, в которых нет отношения к категории. Я не могу просто сказать ->where('c.id = NULL') либо потому, что, если нет отношения к категории, то в объекте нет какого-либо массива [Category] . Он возвращает только id, title and content . Также я не могу сказать ->where(a.Category = NULL) потому что Категория не является столбцом статьи.

Есть идеи?

ОБНОВЛЕНИЕ Я допустил ошибку на Схеме и обновил ее. Я знаю, что для категории не имеет смысла только иметь отношения с одной статьей, но на самом деле я не использую статьи / категории. Я просто использовал эти термины в качестве примеров.