简体   繁体   English

在 Zend 社交引擎中使用连接多个表

[英]Using join with multiple table in zend social engine

我想加入超过 3 个的多个表并删除重复的行。

Sample query for示例查询

$table = Engine_Api::_ ()->getDbtable ( 'topics', 'group' );
$topicselect = $table->select ()->where ( 'group_id = ?', $group_id );

$topics = $table->fetchAll ( $topicselect );
$topicCount = count ( $topics );

$photoTable = Engine_Api::_ ()->getItemTable ( 'group_photo' );
$photoselect = $photoTable->select ()->where ( 'group_id = ?', $group_id );

$photos = $photoTable->fetchAll ( $photoselect );
$photoCount = count ( $photos );

$groupTable = Engine_Api::_ ()->getItemTable ( 'group' );
$groupInfo = $groupTable->info ( 'name' );
$storage = Engine_Api::_ ()->getDbtable ( 'files', 'storage' );
$storage_files = $storage->info ( 'name' );
$groupMembershipTable = Engine_Api::_ ()->getDbtable ( 'membership', 'group' );
$groupMembershipTableName = $groupMembershipTable->info ( 'name' );
$category_table = Engine_Api::_ ()->getDbtable ( 'categories', 'group' );
$categoryInfo = $category_table->info ( 'name' );

$select = $groupTable->select ()->setIntegrityCheck ( false )->from ( array (
        'group' => $groupInfo 
) )->joinLeft ( array (
        'category' => $categoryInfo 
), 'category.category_id =group.category_id', array (
        'category.title AS categoryname' 
) )->joinLeft ( array (
        'membership' => $groupMembershipTableName 
), "membership.resource_id = group.group_id and membership.user_id= $user_id", array ( 
) )->joinLeft ( array (
        'storage' => $storage_files 
), "storage.file_id=group.photo_id", array (
        'storage.storage_path' 
) )->where ( 'group.group_id = ?', $group_id )->order ( "storage.modified_date DESC" );
// ->group('group.group_id');

$group = $groupTable->fetchAll ( $select );

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM