我在 Magento 数据库中有两个表,只有两个公共(public)字段(日期和 customer_id),详细信息如下:
First table name "order" with fields (customer_id, date, order_id)
Second table name "request" with fields (customer_id, date, request_id, request_type)
我可以分别从每个集合中选择按日期排序的最后 10 条记录,但是如何从按日期排序的两个表中选择最后 10 条记录,并显示 order_id(如果它来自“order”表)并显示 request_id 和 request_type如果它来自“请求”表?
我可以从以下集合中进行选择:
$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();
}
最佳答案
您可以将 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
列将告诉您从哪个表中获取该行。
关于php - 在 Magento 中加入两个具有不同字段的集合以按日期选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32454987/