嘗試使用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只是允許它在列部分 –