'존재하지 않음'과 같은 조건 찾기
-
20-09-2019 - |
문제
내 DB에 2 개의 테이블이 있습니다 ...
entita
ID int (11)
descrizione 바르 차 (50)
.....
publicobjects
....
모델 바르 차 (50) 필요한 모델 (이 경우 'entita')
model_id int (11)
다음과 같은 쿼리를 만들고 싶습니다.
select entita.*
from entita
where NOT EXISTS (select * from publicobjects where publicobjects.model = 'Entita' and publicobjects.model_id = entita.id)
사용자 정의 쿼리를 사용하지 않고 CakePHP의 모델 기능으로 어떻게이를 수행 할 수 있습니까?
감사
해결책
나는 당신이 publicobjects 테이블에없는 entita 테이블에서 행을 찾으려고 노력하고 있다고 생각합니다. 그것이 정확하다고 가정하면, mysql이 그것을 찾을 수있는 SQL 쿼리가 있습니다.
SELECT `entita`.*
FROM `entita`
LEFT JOIN `publicobjects` ON (`publicobjects`.`model` = 'entita'
AND `publicobjects`.`model_id` = `entita`.`id`)
WHERE `publicobjects`.`model_id` IS NULL
CakePhp의 모델 로이 작업을 수행하려면 몇 가지 단계가 필요합니다. 나는 당신의 모델 이름에 대해 몇 가지 가정을했지만, 나는 틀릴 수 있고 그것들은 고칠 수 있습니다.
먼저 이것을 entita 모델에 추가하십시오.
<?php
var $hasOne = array('Publicobject' => array(
'foreignKey' => 'model_id',
'conditions' => 'Publicobject.model = "Entita"'));
이제 : Publicobjects 테이블에 누락 된 항목을 확인할 수 있습니다.
<?php
$this->Entita->find('all', array('conditions' => array('Publicobject.model_id IS NULL')));
제휴하지 않습니다 StackOverflow