0
$conditions = Array
(
  [table] => products_pages
  [alias] => ProductsPage
  [type] => inner
  [foreignKey] => 
  [conditions] => Array
  (
   [0] => ProductsPage.product_id = Product.id
  )
)

次のSQLステートメントのように、NOTEXISTS条件を設定しようとしています。

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

queryCakePHPでそれを行う方法が見つからない場合は、 いつでも使用できます:http: //book.cakephp.org/2.0/en/models/retrieveing-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 に答える