我在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();
}
答案 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
列会告诉您从哪个表中获取该行。