5

私はこのクエリを持っています:


SELECT g.title, g.asin, g.platform_id, r.rank
        FROM games g
        INNER JOIN ranks r ON ( g.id = r.game_id )
        ORDER BY r.rank DESC
        LIMIT 5`

さて、これは私のJOINを使用してZend_Db_Selectいますが、配列エラーが発生します


$query = $this->select();
        $query->from(array('g' => 'games'), array());
        $query->join(array('r' => 'ranks'), 'g.id = r.game_id', array('g.title', 'g.asin', 'g.platform_id', 'r.rank'));
        $query->order('r.rank DESC');
        $query->limit($top);
        $resultRows = $this->fetchAll($query);
        return $resultRows;

私が間違っている可能性があることを知っている人はいますか?表示する「ゲーム」のすべての列と、ランク テーブルの「ランク」列を取得したいと考えています。

4

4 に答える 4

10

私はあなたがこれを解決したと仮定するつもりですが、他の人に答えを残しておくといいでしょう.

これを選択オブジェクトのインスタンス化の下に追加します。

$query->setIntegrityCheck(false);
于 2010-04-22T20:01:07.513 に答える
5

入力する文字数を減らすこともできます....

$query = $this->select()
              ->from(array('g' => 'games'), array('title', 'asin', 'platform_id'))
              ->join(array('r' => 'ranks'), 'g.id = r.game_id', array('rank'))
              ->order('r.rank DESC')
              ->limit($top);
return $this->fetchAll($query);

幸運を!

于 2010-06-22T15:39:37.200 に答える
0

これが私がそれを書く方法です:

$query = $this->select();
$query->from(array('g' => 'games'), array('title', 'asin', 'platform_id'));
$query->join(array('r' => 'ranks'), 'g.id = r.game_id', array('rank'));
$query->order('r.rank DESC');
$query->limit($top);
$resultRows = $this->fetchAll($query);
return $resultRows;
于 2009-08-19T20:39:24.513 に答える
0

その他の例:

n.content、n.date、u.mailを選択
メモ n、ユーザー u から
ここで、n.id_us=u.id およびリマインダー=current_date

$query = $this->select()
    ->from(array('n'=>'notes'),
      配列 ('コンテンツ', '日付'))
    ->join(array('u'=>'users'), 'n.id_us=u.id and n.reminder=current_date',
      配列('メール'))
    ->setIntegrityCheck(false);
$this->fetchAll($query); を返します。

それはうまくいきます:)

于 2010-09-26T20:38:45.720 に答える