我想选择要显示的所有价格,然后我要更新所有价格。我可以在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));
答案 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));
这应该给出相同的结果。