我有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')));
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top