在加入Zend之前获取结果

时间:2015-08-20 12:08:19

标签: mysql join zend-framework

我有两个表,例如“first”和“second”。我必须将第一个表数据限制为10,然后加入第二个表。两者都非常大。我加入了他们,然后在加入后申请限额。然后取得了结果。

    $select = $db->select();

    $select->from(array("f"=>'first'),'*')

           ->join(array("s"=>'second'),'f.id= s.id','*')

           -> where("f.state = active")

           ->order('f.cost DESC')

           ->limit(10,20);

   $res = $db->fetchAll($select);

以上查询花费了大量时间。有没有办法在之前获取结果然后加入以减少查询时间?如何做ZEND

1 个答案:

答案 0 :(得分:0)

您可以获取具有限制的两个表,这将为您提供两个Zend_Db_Table_Rowset,然后,您可以使用PHP数组函数来“加入”它们。

我认为这个函数非常类似于内连接,但是在数组中:http://php.net/manual/es/function.array-uintersect.php

array_uintersect($rowset1->toArray(), $rowset2->toArray(), "strcasecmp")

这会比较字符串并进行连接。

我不知道这是否真的会更快。