将sql查询转换为zend查询

时间:2014-07-24 14:54:58

标签: php sql zend-framework

SELECT uls.prod_id,um.prod_image,um.prodname,SUM(msm.points)
FROM tbl_prod_selection AS uls
INNER JOIN tbl_prod_master AS um ON um.prod_id = uls.prod_id
INNER JOIN tbl_admin_prod_selection AS als ON als.user_id = uls.user_id
INNER JOIN tbl_prod_statistics_master AS msm ON (msm.user_id = uls.user_id AND msm.barcode_id = als.barcode_id)
WHERE uls.location_id = "18" AND uls.prod_code = "FLB"
GROUP BY uls.user_id;

任何人都可以帮助为此编写zend查询。

先谢谢。

1 个答案:

答案 0 :(得分:1)

如果您正在使用Zend_Db_Table,那么您可以组装Zend_Db_Table_Select,如下所示:

$select = $model->select()
                ->setIntegrityCheck(false)
                ->from(array('uls' => 'tbl_prod_selection'), array(
                        'uls.prod_id',
                        'um.prod_image',
                        'um.prodname',
                        'sum' => new Zend_Db_Expr('SUM(msm.points)'),
                ))
                ->join(array('um' => 'tbl_prod_master'), 'um.prod_id = uls.prod_id', array())
                ->join(array('als' => 'tbl_admin_prod_selection'), 'als.user_id = uls.user_id', array())
                ->join(array('msm' => 'tbl_prod_statistics_master'), 'msm.user_id = uls.user_id AND msm.barcode_id = als.barcode_id', array())
                ->where('uls.location_id = ?', '18')
                ->where('uls.prod_code = ?', 'FLB')
                ->group('uls.user_id');