尝试使用Zend\Db\Sql\Select
获取嵌套选择,在文档或谷歌中根本看不到任何内容。使用ZF2嵌套选择
想要做这样的事情:
SELECT
table1.*,
(SELECT x,y,z FROM table2 WHERE table2.a = table1.a) as b
FROM table1
没有嵌套查询,这将是这个样子:
$select = new Zend\Db\Sql\Select;
$select
->columns(array(
'*'
))
->from('table1')
ZF1看了有关创建子查询项目,然后将其添加为表达式在列表中,但在ZF2中,它抱怨表达式需要是一个字符串。
编辑:嵌套选择需要作为列,因为当在同一列名称上使用GROUP BY时,我最终得到的是相乘的行。这是正确的查询我试图进入Zend\Db\Sql\Select
:
SELECT
users.id,
(SELECT count(explorations.id) FROM explorations WHERE user_id = users.id) as total_explorations,
count(villages.id)
FROM
users
INNER JOIN
villages
on (villages.user_id = users.id)
GROUP BY
users.id
这是目前我回避的事情,因为我无法做到这一点。刚刚写出了SQL,如你所说,但后来一半是抽象的,另一半是原始的:D正在考虑ZF2只是允许它在列部分 –