我有两个表,例如“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
答案 0 :(得分:0)
您可以获取具有限制的两个表,这将为您提供两个Zend_Db_Table_Rowset,然后,您可以使用PHP数组函数来“加入”它们。
我认为这个函数非常类似于内连接,但是在数组中:http://php.net/manual/es/function.array-uintersect.php
array_uintersect($rowset1->toArray(), $rowset2->toArray(), "strcasecmp")
这会比较字符串并进行连接。
我不知道这是否真的会更快。