How to join collections in Magento?

Here you have a working example:

$collection = Mage::getModel('sales/order')->getCollection();
$collection->getSelect()->join( array('order_item'=> 'sales_flat_order_item'), 'order_item.order_id = main_table.entity_id', array('order_item.sku'));

Just a quick correction I had to add quotes on the table name: array('order_item'=> 'sales_flat_order_item'), Also getSelect() is not necessary as the third argument is the attribute list. Final argument specifies the type of join you would like to use.

My version looked like this:


$collection = Mage::getResourceModel($this->_getCollectionClass());
$collection->join(array('order'=> 'sales/order'),'order.entity_id=main_table.entity_id', array('po_number'=>'po_number', 'imi_customer_email' =>'imi_customer_email'), null,'left');
$this->setCollection($collection);`