2012-12-14 25 views
0
$conditions = Array 
(
    [table] => products_pages 
    [alias] => ProductsPage 
    [type] => inner 
    [foreignKey] => 
    [conditions] => Array 
    (
    [0] => ProductsPage.product_id = Product.id 
) 
) 

我試圖建立NOT EXISTS條件,如下面的SQL語句:CakePHP有屬於許多條件與NOT EXISTS

SELECT * FROM products_pages,products 
WHERE NOT EXISTS (SELECT id 
        from products_pages 
        where products_pages.product_id = products.id) 

所以基本上選擇不存在任何產品在products_pages表中。

什麼是格式化爲CakePHP的是SQL語句,並在這裏替換它的正確方法:

[條件] =>陣列 ( [0] =>(什麼是上面插入SQL這裏的正確方法? )

會很感激你的幫助球員,我一直在努力,沒有運氣算出這個約5小時。謝謝!

回答

-1

您可以隨時使用query,如果你沒有找到辦法用CakePHP來做: http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#model-query

在這種情況下,安全性不會受到影響,因爲您沒有使用任何輸入。

無論如何,一些簡單的將只是做它在超過一個步驟:

//selecting the products in the productcs_pages table 
$productsWithPages = /* query to get them*/ 

//getting an array of IDs 
$productsWidthPagesIds = Hash::extract($productsWithPages, '{n}.Product.id'); 

//doing the NOT IN to select products without pages 
$productsWithoutPages= $this->Product->find('all', 
     array('conditions' => 
      array('NOT' => array('Product.id' => $productsWidthPagesIds) 
     ) 
); 
+0

我愛你的男人,工作得十分完美!萬分感謝。 – Walter

+0

如果您接受答案爲有效:)(我的答案左側打勾) – Alvaro