我有两个表:用户和用户元。表 usermetah 有 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 框架在偏移量和限制值中添加了引号,导致语法错误。谁能帮我解决这个问题?