CakePHP查找具有hasOne Model关系且没有关联项的项

时间:2014-11-23 14:09:08

标签: cakephp find relation zero has-one

我有一个与配置文件模型具有hasOne关系的用户模型。我想找到没有与之关联的个人资料的用户。我不知道counterCache是​​否适用于hasOne关系,或者在适当条件下有更好的方法。

1 个答案:

答案 0 :(得分:3)

我相信hasOne关系会在SQL语句中创建LEFT JOIN。可以说,为您的查找生成的SQL看起来像(假设有更多列):

SELECT User.id, User.name, Profile.id
FROM users AS User
LEFT JOIN profiles AS Profile
  ON Profile.user_id = User.id;

您需要做的就是为不匹配的行添加另一个WHERE子句:WHERE Profile.id IS NULL。因此将Cakephp代码更改为

$this->User->find('all',array(
  'conditions' => array('Profile.id' => 'NULL')))