0

Zend Framework の初心者として、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;
}

だから、誰かがこのクエリを書くための例を与えることができれば、私はそれを完了する方法がわからない.

4

1 に答える 1

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 )"))
于 2013-10-30T15:24:44.850 に答える