题
我有2个表格在我的数据库...
Entita
id int(11)
descrizione varchar(50)
.....
Publicobjects
....
模型 varchar(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)
我怎么可以这样做的模型的功能Cake没有使用定制的查询?
感谢
解决方案
我相信你试图找到行Entita表不在Publicobjects表。假设是正确的,这里是SQL query for MySQL找到它:
SELECT `entita`.*
FROM `entita`
LEFT JOIN `publicobjects` ON (`publicobjects`.`model` = 'entita'
AND `publicobjects`.`model_id` = `entita`.`id`)
WHERE `publicobjects`.`model_id` IS NULL
为了使这项工作与Cake的模型需要几个步骤。我已经作了一些假设对你的型号名称,但是我可能是错和那些易于解决。
第一添加这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