【问题标题】:Inner Join and filter by date not working throws Integrity constraint violation error内部联接和按日期过滤不起作用会引发完整性约束违规错误
【发布时间】:2019-01-22 07:03:31
【问题描述】:

我正在尝试对两个表进行内部联接以获取数据。但是,当我搜索从表中获取日期时,它起作用了。我收到一个错误提示

Integrity constraint violation: 1052 Column 'created_at' in where clause 
is ambiguous, query was: SELECT COUNT(*) FROM `sales_flat_order` AS 
`main_table`
INNER JOIN `sales_flat_order_item` ON main_table.store_id = 
sales_flat_order_item.store_id WHERE (`created_at` >= '2017-04-01'

这是我的代码

$collection = Mage::getModel('sales/order')->getCollection();

$collection->addFieldToFilter('created_at');
$collection->getSelect()->join("sales_flat_order_item", 
"main_table.store_id = sales_flat_order_item.store_id", 
array('name','sku','order_id','quantity'));

【问题讨论】:

    标签: php magento


    【解决方案1】:

    你可以试试这样的

    $collection = Mage::getModel('sales/order')->getCollection();
    $collection->addFieldToFilter('main_table.created_at', '2017-04-01');
    $collection->getSelect()->join("sales_flat_order_item",
        "main_table.store_id = sales_flat_order_item.store_id",
        array('name','sku','order_id','qty_ordered'));
    

    但是您的联接看起来很奇怪,也许使用 sales_flat_order.entity_id = sales_flat_order_item.order_id 然后 store_id 会更好

    您究竟想通过该选择获得什么?

    请描述你的任务。

    【讨论】:

      【解决方案2】:

      解决了。

      $startDate = date("Y-m-d 00:00:00", strtotime( date( "Y-m-d 00:00:00", 
      strtotime( date("Y-m-d 00:00:00") ) ) . "-10 months" ) );
      $endDate = date("Y-m-d 00:00:00", strtotime( date( "Y-m-d 00:00:00", 
      strtotime( date("Y-m-d 00:00:00") ) ) . "+1 day" ) );
      $collection = Mage::getResourceModel('sales/order_item_collection')->addFieldToFilter('created_at', array('from' => $startDate, 'to' => $endDate)->addAttributeToSelect('*');
      $this->setCollection($collection);
      return parent::_prepareCollection();
      

      【讨论】:

        猜你喜欢
        • 2022-01-23
        • 2020-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-10
        • 2015-11-03
        • 1970-01-01
        相关资源
        最近更新 更多