1

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

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 做到这一点。

感谢您的任何建议!

4

1 回答 1

2

您需要进行这样的查询SELECT * FROM items left join category_items on ... where cateogry_items.id is null。在教义中,这意味着:

ItemsTable::getInstance()->createQuery('Items')
  ->leftJoin('Items.CategoryItems CategoryItems')
  ->where('CategoryItems.id IS NULL')
  ->execute()
于 2013-04-13T07:05:21.583 回答