在Zend框架2中使用子查询中的限制和偏移量

时间:2013-09-17 05:06:34

标签: mysql zend-framework2 subquery

我有两个表:users和usermeta。表usermetahas有4列:id,user_id,meta_key和meta_value。用户可以拥有许多元数据。 我想获得前10个用户的组。所以我在Zend框架2中创建了一个SQL查询:

$coreSelect = $sql->select()
                        ->from('users')
                        ->limit(10)
                        ->offset(0);
$select = $sql->select()
->from(array('u'   => $coreSelect))
->join('usermeta', 
                        'u.user_id = usermeta.user_id',
                        array(
                            'meta_key'      => 'meta_key',
                            'meta_value'    => 'meta_value',
                        ),
                        Select::JOIN_LEFT
);

执行此查询时,它会显示SQL语法错误。 Zend框架操纵的SQL查询字符串如下所示:

    SELECT u.*
    FROM (
    SELECT * FROM users LIMIT '10' OFFSET '0') AS u
    ...

这意味着Zend框架已将引号添加到偏移量和限制值中,这会导致语法错误。 有谁可以帮我解决这个问题?

1 个答案:

答案 0 :(得分:1)

这可以帮到你: http://www.maltblue.com/tutorial/zend-db-sql-creating-joins-and-unions-with-ease 最终感兴趣的东西,但阅读所有内容是有用的。