我在数据库中有两个表,一个表为user(id,first_name,last_name),另一个表为location(id,country)。
user(id,first_name,last_name)
location(id,country)
我需要根据条件对这两个表执行内部联接user.id = location.id,并且查询结果应包含first_name,last_name和列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”
可能是什么问题呢?
我认为您的语法是错误的,因为options数组应具有用于联接的键。您似乎有额外的余地array。尝试:
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') )) ) ));