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

내가 NOT 다음과 같은 SQL 문 같은 조건을 EXISTS 설정하기 위해 노력하고있어 존재합니다 많은 조건에 속하는 :CakePHP의가 있고 NOT이

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

관련 문제