【问题标题】:Write an sql Query in Zend在 Zend 中写一个 sql 查询
【发布时间】:2013-10-30 15:14:38
【问题描述】:

作为 zend 框架的初学者,我需要一些帮助来编写 sql 查询。 这是我的查询:

   SELECT 
    COUNT( * ) AS Ouvert , SUBSTRING_INDEX( emails.email_value,  '@', -1 ) AS FAI, track_open.open_date
    FROM emails, track_open
    WHERE emails.email_id = track_open.email_id
    AND DATE( open_date ) = CURDATE( ) 
    GROUP BY SUBSTRING_INDEX( emails.email_value,  '@', -1 )

这是我必须编写的函数:

public function getOpen()
{
    $query = $this->select()
                  ->setIntegrityCheck(false)
                  ->from(array('e' => 'emails'))
                  ->join(array('to' => 'track_open'), 'e.email_id = to.email_id')
                ??????????

    $result = $this->fetchAll($query);

    if($result)
    {
        return $result->toArray();
    }

    return false;
}

所以如果有人可以举个例子来写这个查询,因为我不知道如何完成它。

【问题讨论】:

    标签: php sql zend-framework zend-db zend-db-table


    【解决方案1】:

    自从我使用 Zend_Db 以来已经很长时间了,我无法真正测试代码,但您可以尝试以下方法:

     $query = $this->select()
                  ->setIntegrityCheck(false)
                  ->from(array('e' => 'emails'), array(
                      'Ouvert' => new Zend_Db_Expr('COUNT( * )'),
                      'FAI' => new Zend_Db_Expr("SUBSTRING_INDEX( emails.email_value,  '@', -1 )"),
                      'track_open.open_date',
                  ))
                  ->join(array('to' => 'track_open'), 'e.email_id = to.email_id')
                  ->where('emails.email_id = track_open.email_id')
                  ->where('DATE( open_date ) = CURDATE( )')
                  ->group(new Zend_Db_Expr("SUBSTRING_INDEX( emails.email_value,  '@', -1 )"))
    

    【讨论】:

      猜你喜欢
      • 2012-03-27
      • 2013-03-20
      • 1970-01-01
      • 2017-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-08
      • 2019-07-25
      相关资源
      最近更新 更多