我在 cakePHP 中有两个表。
competencies
------------
id
name
competenceRatings
-----------------
id
competence_id
user_id
rating
我需要一种以蛋糕方式编写以下查询的方法:
SELECT * FROM 能力,其中 id 不在(从能力等级中选择能力 ID,其中雇员 ID = $userId)
有人请帮助我!
我在使用这个子查询方法之前做了什么:
我尝试了能力->hasMany->competenceRatings,competenceRatings->belongsTo->competencies 关系。
$competencies = $this->Competence->CompetenceRating->find('all',array('CompetenceRating.user_id' => $userId,'CompetenceRating.competence_id !=' => 'Competence.id'));
我希望能够获得用户没有对competitionRatings 表进行任何评级的能力名称。即,我需要能力表中的名称列表,其中 comptenceRatings 表中没有条目(对于给定的 user_id)。
编辑
我也尝试过表连接:
$options['joins'] = array(
array(
'table' => 'competence_ratings',
'alias' => 'CompetenceRating',
'type' => 'LEFT OUTER',
'conditions' => array(
'Competence.id = CompetenceRating.competence_id'
)
)
);
$options['conditions'] = array( 'CompetenceRating.employee_id' => $employee['Employee']['id'] );
$competencies = $this->Competence->find('all',$options);