2013-04-13 121 views
1

我有兩個與多對多關係相關的表。我試圖找到所有沒有相關值的行。以下是一個示例:Symfony 1.4:查找沒有相關值的記錄

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) 

這似乎是一個相當簡單的要求,但我無法弄清楚如何讓學說做到這一點。

感謝您的任何建議!

回答

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() 
+0

謝謝!我仍然習慣於Doctrine語法。通常,許多翻譯表在查詢中未被引用,但這正是這裏所需要的。 我很感激幫助! –

相關問題