Zend框架子查询用于更新和选择

时间:2015-11-28 07:39:11

标签: php magento zend-framework zend-framework2

我想选择要显示的所有价格,然后我要更新所有价格。我可以在MySQL中编写子查询但是如何在zend框架查询样式中执行此操作?

MySQL查询

SELECT price FROM mag1.catalog_product_option_type_price where option_type_id in 
(SELECT option_type_id FROM mag1.catalog_product_option_type_value where option_id in 
(SELECT option_id FROM mag1.catalog_product_option where product_id= 11));

1 个答案:

答案 0 :(得分:0)

准确撰写查询:

$select1 = new Select();
$select1->from('catalog_product_option')
->columns('option_id')
->where(array('product_id' => 11));

$where2 = new Where();
$select2 = new Select();
$select2->from('catalog_product_option_type_value')
->columns('option_type_id')
->where($where2->in('option_id', $select1);

$where = new Where();
$select = new Select();
$select->from('catalog_product_option_type_price')
->columns('price')
->where($where->in('option_type_id', $select2);

但为什么不试试

$select = new Select();
$select->from(array('p' => 'catalog_product_option_type_price'))
->join(array('v' => 'catalog_product_option_type_value'), 'p.option_type_id = v.option_type_id', array())
->join(array('o' => 'catalog_product_option'), 'v.option_id = o.option_id', array())
->columns('price')
->where(array('o.product_id' => 11));

这应该给出相同的结果。