Symfony 1.4:查找没有相关值的记录

时间:2013-04-13 05:30:23

标签: doctrine many-to-many symfony-1.4 relation

我有两个与多对多关系相关的表。我试图找到所有没有相关值的行。这是一个例子:

Table 1:  Categories
Table 2:  CategoryItems
Table 3:  Items

我正在尝试找到所有没有相关类别的项目。

如果我用直接的SQL写这个,那就是我要做的:

SELECT *
FROM Items
WHERE Items.item_id not in (SELECT DISTINCT item_id FROM category_items)

这似乎是一个相当简单的要求,但我无法弄清楚如何让Doctrine这样做。

感谢您的任何建议!

1 个答案:

答案 0 :(得分:2)

您需要执行此SELECT * FROM items left join category_items on ... where cateogry_items.id is null之类的查询。在Doctrine中,这意味着:

ItemsTable::getInstance()->createQuery('Items')
  ->leftJoin('Items.CategoryItems CategoryItems')
  ->where('CategoryItems.id IS NULL')
  ->execute()