我在数据库中有两个表,一个表为user(id,first_name,last_name)
,另一个表为location(id,country)
。
我需要根据条件user.id = location.id
对这两个表执行内部联接,查询结果应包含first_name
,last_name
和country
列。
我在CakePHP中尝试了以下查询:
$this->set('users', $this->User->find('list', array(
'fields' => array(
'User.id',
'User.first_name',
'location.country'
),
array(
'joins' => array(
array(
'table' => 'location',
'alias' => 'location',
'type' => 'INNER',
'conditions' => array('User.id = location.id')
)
)
)
)));
然而产生此错误:
未知栏' location.country'在'字段列表'
可能是什么问题?
答案 0 :(得分:5)
我认为你的语法错误,因为options数组应该有一个连接键。您似乎有额外的array
。尝试:
$this->set('users',$this->User->find('list',
array(
'fields' => array('User.id', 'User.first_name','location.country'),
'joins' => array(array('table' => 'location',
'alias' => 'location',
'type' => 'INNER',
'conditions' => array('User.id = location.id')
))
)
));