を使用してネストされた選択を取得しようとしてZend\Db\Sql\Select
いますが、ドキュメントまたはGoogleで何も表示されません。
このようなことをしたい:
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 項目を作成し、それを列のリスト内に Expression として追加することを検討しましたが、ZF2 では Expression が文字列である必要があると不平を言っています。
編集:ネストされた選択は、同じ列名で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