$conditions = Array
(
[table] => products_pages
[alias] => ProductsPage
[type] => inner
[foreignKey] =>
[conditions] => Array
(
[0] => ProductsPage.product_id = Product.id
)
)
我正在尝试设置NOT EXISTS条件,如下面的SQL语句:
SELECT * FROM products_pages,products
WHERE NOT EXISTS (SELECT id
from products_pages
where products_pages.product_id = products.id)
所以基本上选择products_pages表中不存在的任何产品。
为CakePHP格式化该SQL语句并在此处替换它的正确方法是什么:
[conditions] =>排列 ( [0] => (在这里插入SQL的正确方法是什么? )
真的很感谢你们的帮助,我一直在努力解决这个问题大约5个小时没有运气。谢谢!
答案 0 :(得分:-1)
如果你没有找到使用CakePHP的方法,你总是可以使用query
:
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 )
)
);