如果我用
$query = $this
->select()
->from(array('a' => 'aanvragen'))
->join(array('v' => 'verloven'),
'v.aanvraag_id = a.id' ,array())
->where('a.personeelslid_id = :personeelslid_id')
->where('v.type = 3')
->bind(array(
'personeelslid_id' => $this->_personeelslid->id
))
;
return $this->fetchAll($query, array('aanvragen','verloven'));
我得到了正确的 record(s)
但由于 array()
而没有来自表 verloven(v)
的数据。
但是如果我像这样删除空数组:
$query = $this
->select()
->from(array('a' => 'aanvragen'))
->join(array('v' => 'verloven'),
'v.aanvraag_id = a.id' )
->where('a.personeelslid_id = :personeelslid_id')
->where('v.type = 3')
->bind(array(
'personeelslid_id' => $this->_personeelslid->id
))
;
return $this->fetchAll($query, array('aanvragen','verloven'));
我得到一个错误:
Select query cannot join with another table.
如何从两个表中获取数据?
最佳答案
假设您使用的是 zf 1+ ,您可以根据您的模型执行以下操作,
$sql=$this->select()
->setIntegrityCheck(false)
->from(array('a' => 'aanvragen'),array('field1','field2'))
->join(array('v' => 'verloven'),'v.aanvraag_id = a.id',array('field3'))
->where('a.personeelslid_id = :personeelslid_id')
->where('v.type = 3')
->group('fieldname')
->order('fieldname');
$resultSet = $this->fetchAll($sql);
return $resultSet;
您需要将 setIntgrityCheck 设置为 false 才能加入选择查询.. 希望这有帮助..
关于mysql - zend framework 从两个表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20563980/