5

Zend フレームワークの SQL クエリ内で構文を使用したいのですがWITH、SQL は次のようになります。

WITH t AS
(SELECT item_id, row_number() OVER (ORDER BY some_criteria DESC) rn
   FROM orders)
SELECT t2.rn, t2.item_id
  FROM t t1 JOIN t t2 ON (t2.rn > t1.rn)
 WHERE t1.item_id = 145;

Zend Framework でこれを行うにはどうすればよいですか? とZend_Db_Select? 助言がありますか?

4

3 に答える 3

3

Zend_Db_Select では美しい方法でそれを行うことはできないため、単純なクエリを使用することをお勧めします:

$q = "WITH t ..."
$db->fetchAll($q);
于 2012-08-30T07:05:12.973 に答える
0

これZend_Db_Selectは、別の回答ですでに引用されているように、アプリケーションにパラメーターとロジックが含まれているため、クエリがやや複雑な場合に役立ちます。この命令の詳細な説明については、公式の Zend Frameworkのこのリンクを確認してください。

また、Zend Framework コミュニティからのこの便利なリンク、特にこの投稿も確認してください。投稿したクエリのように、小さくて複雑ではないクエリの場合、fetchAll()orquery()命令を使用する方が簡単であることを明確に示しています。

したがって、私のアドバイスは、あなたの場合にはfetchAll()またはquery()を使用してください。

于 2012-09-06T08:23:03.623 に答える