1

私はSQL文を持っています

select a.username 
from friendships f1
inner join friendships f2 on (f1.user = f2.friend and f1.friend = f2.user) 
inner join users a ON (a.user_id = f1.friend) where f1.user = '24'

このクエリを phpmyadmin で実行しましたが、問題ありません。

しかし、Zend でこのクエリを実行する方法がわかりません

$select = $this->_db_table->select()
->setIntegrityCheck(false)
->from(array('f1' => 'friendships'), array('u.*'))
->joinInner(array('f2' => 'friendships'), 
            array('f1.user = f2.friend',  'f1.friend = f2.user'))
->joinInner(array('u' => 'users'), array('u.user_id = f1.friend'))
->where('f1.user = ?', $user_id);

このコードを使用していますが、うまくいきません。何かアイデアはありますか?

4

2 に答える 2

0

どのバージョンの ZF を使用していますか? ZF 1.12 で行う方法は次のとおりです。

$this->_db_table->getAdapter()->select()
    ->from("friendships as f1")
    ->joinInner("friendships as f2", "f1.user = f2.friend AND f1.friend = f2.user")
    ->joinInner("users as a", "a.user_id = f1.friend", array("a.username"))
    ->where("f1.user = ?", $user_id)
    ->query()
    ->fetchAll(); // use ->fetch() if you only want to retrieve one record

詳細については、マニュアルを参照してください。

于 2013-06-25T22:10:32.103 に答える