在Zend Php中连接模型内的表

在Zend Php中连接模型内的表,php,zend-framework,zend-db,Php,Zend Framework,Zend Db,我了解Zend_Table的用法,可以使用Zend函数从与该类关联的表中获取数据。例如,我有一个视频表,在另一个表中,我有视频和它所属类别之间的关联 我有点困惑如何在框架内激活如下选择: SELECT * FROM video,category WHERE category.category_id = 3 AND video.id = category.video_id 我希望在引用视频表的视频模型中实现这一点。从您发布的内容来看,视频表和类别之间似乎存在某种关系:一个类别有许多视频,而一个视

我了解
Zend_Table
的用法,可以使用Zend函数从与该类关联的表中获取数据。例如,我有一个视频表,在另一个表中,我有视频和它所属类别之间的关联

我有点困惑如何在框架内激活如下选择:

SELECT * FROM video,category WHERE category.category_id = 3 AND video.id = category.video_id

我希望在引用视频表的视频模型中实现这一点。

从您发布的内容来看,视频表和类别之间似乎存在某种关系:一个类别有许多视频,而一个视频属于一个类别。您应该查看Zend_Db_表关系。

这里是一个粗略的类。它直接使用Zend db适配器,因此Zend_db_表对象并不真正了解这种关系,但它可以工作

class Video extends Zend_Db_Table
{
   public function doQueryWithSql($id)
   {
     $qy = " SELECT * FROM video,category WHERE category.category_id = $id AND video.id = category.video_id ";
     return $this->getAdapter()->fetchAll($qy);
   }

   public function doQueryWithObject($id)
   {
     $select = $this->getAdapter()->select();
     $select->from(array('v'=>'video'))
            ->join(array('c'=>'category'),'v.id = c.video_id')
            ->where("c.category_id = $id");
     return $this->getAdapter()->fetchAll($select);
   }
}