试图使用嵌套选择Zend\Db\Sql\Select
,但在文档或谷歌上根本看不到任何东西。
想做这样的事情:
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 考虑创建一个 subSelect 项,然后将其作为表达式添加到列列表中,但在 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