Copy a Magento collection
$originalCollection = Mage::getModel('catalog/product')
->getCollection();
$newCollection = Mage::getModel('catalog/product')
->getCollection();
$selectParts = array(
Varien_Db_Select::DISTINCT,
Varien_Db_Select::COLUMNS,
Varien_Db_Select::UNION,
Varien_Db_Select::FROM,
Varien_Db_Select::WHERE,
Varien_Db_Select::GROUP,
Varien_Db_Select::HAVING,
Varien_Db_Select::ORDER,
Varien_Db_Select::LIMIT_COUNT,
Varien_Db_Select::LIMIT_OFFSET,
Varien_Db_Select::FOR_UPDATE,
);
$originalSelect = $originalCollection->getSelect();
$newSelect = $newCollection->getSelect();
foreach ($selectParts as $part) {
$newSelect->setPart(
$part,
$originalSelect->getPart($part)
);
}