0
$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 语句并在此处替换它的正确方法是什么:

[条件] => 数组( [0] => (这里插入 SQL 的正确方法是什么?)

非常感谢您的帮助,我一直在尝试解决这个问题大约 5 个小时,但没有运气。谢谢!

4

1 回答 1

-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 )
        )
);
于 2012-12-14T09:26:51.360 回答