0

こんにちは、Zend Framework に切り替えたので、codeigniter でクエリを実行しました。zend フレームワークでクエリを実行したかったのです。

これが私のサンプルクエリです:

$sql = "SELECT Mes.fromid, Mes.is_read AS is_read, Mes.id AS mesid, Mes.message AS message, 
                 max(Mes.date) AS date, User.username AS username, User.id AS Uid
                FROM  `messages` AS Mes
                LEFT JOIN users AS User ON User.id = Mes.fromid
                WHERE Mes.toid = ? AND Mes.fromid <> ?
                GROUP BY Mes.fromid ORDER BY date DESC"; 

        $query = $this->db->query($sql, array($fromid, $fromid));

        return $query->result();

助けてくれてありがとう。

4

3 に答える 3

2
$select = $this->select()
            ->setIntegrityCheck(false)
            ->from(
                array('Mes' => 'messages'), 
                array('fromid', 'is_read AS is_read', 'id AS mesid', 'message AS message', 
                    'max(Mes.date) AS date')
            )
            ->joinLeft(array('User' => 'users'), "User.id = Mes.fromid", array('username AS username', 'id AS Uid'))
            ->where('mes.toid = ? ', $toid)
            ->where('mes.fromid = ?', $fromid)
            ->group('mes.fromid')
            ->order('date DESC');

お役に立てれば :)

于 2012-09-05T16:21:24.310 に答える
2
 $sql =  $db ->select()
             ->from('messages as mes',array('fromid','is_read','id as mesid','message','max(date) as date'))
             ->join('users as user','user.id = mes.fromid',array('username','id as uid'))
             ->where('mes.toid = ? ', $toid)
             ->where('mes.fromid = ?', $fromid)
             ->group('mes.fromid')
             ->order('date DESC');
于 2012-09-05T03:32:39.847 に答える
0

Zend_Db_Statementを確認してください。これを機能させるには、ほとんど編集を加える必要がないようです。

おそらく、Db アダプターを Zend アダプターに変更するだけで、おそらく動作するでしょう。

于 2012-09-05T01:58:33.047 に答える