How do I refactor a WITH subquery using a Zend framework?

I want to use the syntax WITHinside the SQL query within Zend, SQL looks like this:

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;

How can I do this in the Zend Framework? with Zend_Db_Select? Any suggestions?

+5
source share
3 answers

With Zend_Db_Select, you cannot do it in a beautiful way, so I suggest you use a simple query:

$q = "WITH t ..."
$db->fetchAll($q);
+3
source

I quote -

Zend_Db_Select . SELECT, SQL- , Adapter, query() fetchAll(). Zend_Db_Select , SELECT .

,

$wthselect = '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';

$stmt = $select->query($wthselect);
$result = $stmt->fetchAll();
0

Zend_Db_Select , , , , . Zend Framework.

Zend Framework, this . , , , , fetchAll() query().

So my advice, use fetchAll()or query()for your case.

0
source

All Articles