在Magento中加入两个具有不同字段的集合,以按日期进行选择

时间:2015-09-08 10:10:07

标签: php mysql magento model-view-controller magento-1.9

我在Magento数据库中有两个表,只有两个公共字段(date和customer_id),其中包含以下详细信息:

  

第一个表名"顺序"使用字段(customer_id,date,order_id)

     

第二个表名"请求"使用字段(customer_id,date,request_id,request_type)

我可以分别从每个集合中选择按日期排序的最后10条记录,但是如何从两个表中选择最后10条记录,按日期排序并显示order_id,如果它来自" order" table和show request_id和request_type如果来自" request"桌子?

我可以从收藏中选择如下:

   $orders = Mage::getModel('Custommodule_Order/Order')->getCollection()->addFieldToFilter('customer_id', 1)->setOrder('date', 'DESC')->setPageSize(10)->setCurPage(1); 

   $requests = Mage::getModel('Custommodule_Request/Request')->getCollection()->addFieldToFilter('customer_id', 1)->setOrder('date', 'DESC')->setPageSize(10)->setCurPage(1);

foreach($orders as $order){
echo $order->getOrderId();
}

foreach($requests as $request){
echo $order->getRequestId();
}

1 个答案:

答案 0 :(得分:0)

您可以将UNION与额外字段一起使用:

(SELECT t1.id, `t1.date` dte, 1 sourcetable FROM t1) 
UNION
(SELECT t2.id, `t2.date`, 2 sourcetable FROM t2) 
 ORDER BY dte DESC
 LIMIT 10;

sourcetable列会告诉您从哪个表中获取该行。