本文整理匯總了PHP中Varien_Db_Select::crossUpdateFromSelect方法的典型用法代碼示例。如果您正苦於以下問題:PHP Varien_Db_Select::crossUpdateFromSelect方法的具體用法?PHP Varien_Db_Select::crossUpdateFromSelect怎麽用?PHP Varien_Db_Select::crossUpdateFromSelect使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Varien_Db_Select
的用法示例。
在下文中一共展示了Varien_Db_Select::crossUpdateFromSelect方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: applyPriceRuleToIndexTable
/**
* Apply price rule price to price index table
*
* @param Varien_Db_Select $select
* @param array|string $indexTable
* @param string $entityId
* @param string $customerGroupId
* @param string $websiteId
* @param array $updateFields the array of fields for compare with rule price and update
* @param string $websiteDate
* @return Mage_CatalogRule_Model_Resource_Rule_Product_Price
*/
public function applyPriceRuleToIndexTable(Varien_Db_Select $select, $indexTable, $entityId, $customerGroupId, $websiteId, $updateFields, $websiteDate)
{
if (empty($updateFields)) {
return $this;
}
if (is_array($indexTable)) {
foreach ($indexTable as $k => $v) {
if (is_string($k)) {
$indexAlias = $k;
} else {
$indexAlias = $v;
}
break;
}
} else {
$indexAlias = $indexTable;
}
$select->join(array('rp' => $this->getMainTable()), "rp.rule_date = {$websiteDate}", array())->where("rp.product_id = {$entityId} AND rp.website_id = {$websiteId} AND rp.customer_group_id = {$customerGroupId}");
foreach ($updateFields as $priceField) {
$priceCond = $this->_getWriteAdapter()->quoteIdentifier(array($indexAlias, $priceField));
$priceExpr = $this->_getWriteAdapter()->getCheckSql("rp.rule_price < {$priceCond}", 'rp.rule_price', $priceCond);
$select->columns(array($priceField => $priceExpr));
}
$query = $select->crossUpdateFromSelect($indexTable);
$this->_getWriteAdapter()->query($query);
return $this;
}