Php Magento仅联接选定的表列,避免不明确

Php Magento仅联接选定的表列,避免不明确,php,mysql,magento,left-join,ambiguous,Php,Mysql,Magento,Left Join,Ambiguous,我正在尝试连接两个表,然后按产品id对其进行筛选 问题是两个表都有相同的列,我得到以下错误 Integrity constraint violation: 1052 Column 'product_id' in on clause is ambiguous, query was: SELECT COUNT(*) FROM `booking_ticket` AS `main_table` INNER JOIN `sales_flat_order_item` AS `order_item` ON

我正在尝试连接两个表,然后按产品id对其进行筛选

问题是两个表都有相同的列,我得到以下错误

Integrity constraint violation: 1052 Column 'product_id' in on clause is ambiguous, query was: SELECT COUNT(*) FROM `booking_ticket` AS `main_table`
 INNER JOIN `sales_flat_order_item` AS `order_item` ON order_item_id=order_item.item_id
 INNER JOIN `sales_flat_order` AS `order` ON order_item.order_id=order.entity_id
 LEFT JOIN `marketplace_commission` AS `marketplace_data` order.entity_id=marketplace_data.order_id WHERE (`product_id` IN('189'))
我就是这样加入的

$this->getSelect()
            // ->reset(Zend_Db_Select::COLUMNS)
            // ->columns()
            ->joinLeft( // Product ID, Order ID
                array('marketplace_data' => $this->getTable('marketplace/commission')),
                'order.entity_id=marketplace_data.order_id',
                array(
                  "origin" => "marketplace_data.origin"
                )
            );
$ticketCodes = Mage::getModel('booking/ticket')->getCollection()
      ->joinOrderData()->joinMarketPlaceData()
      ->addFieldToFilter('product_id',array('in'=> $id));
然后像这样过滤

$this->getSelect()
            // ->reset(Zend_Db_Select::COLUMNS)
            // ->columns()
            ->joinLeft( // Product ID, Order ID
                array('marketplace_data' => $this->getTable('marketplace/commission')),
                'order.entity_id=marketplace_data.order_id',
                array(
                  "origin" => "marketplace_data.origin"
                )
            );
$ticketCodes = Mage::getModel('booking/ticket')->getCollection()
      ->joinOrderData()->joinMarketPlaceData()
      ->addFieldToFilter('product_id',array('in'=> $id));
我需要在不加入product_id列的情况下加入marketplace表,因为order表已经有product id。如何实现这一点?我已经尝试过重置,正如上面评论的那样。没有效果


提前感谢

您需要产品标识栏的完全限定列名(假设产品标识符合订单项表)


好吧,这就是addFieldToFilter('order\u item.product\u id')并成功了。谢谢但有没有办法避免加入特定的列?