Der Versuch, eine verschachtelte Auswahl unter Verwendung von Zend\Db\Sql\Select
zu erhalten und in der Dokumentation oder bei Google überhaupt nichts zu sehen.Verschachtelte Auswahl mit ZF2
Zu wollen, so etwas zu tun:
SELECT
table1.*,
(SELECT x,y,z FROM table2 WHERE table2.a = table1.a) as b
FROM table1
Ohne die Auswahl verschachtelt ist, würde es in etwa so aussehen:
$select = new Zend\Db\Sql\Select;
$select
->columns(array(
'*'
))
->from('table1')
ZF1 sah sich um einen subselect Artikel erstellen und sie dann als eine Zugabe Ausdruck in der Liste der Spalten, aber in ZF2 beschwert er sich über einen Ausdruck, der eine Zeichenkette sein muss.
Bearbeiten: Die geschachtelte Auswahl muss als eine Spalte sein, wie ich mit multipliziert Zeilen enden, wenn Sie GROUP BY für den gleichen Spaltennamen verwenden. Dies ist die richtige Abfrage Ich versuche, in Zend\Db\Sql\Select
zu bekommen:
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
Dies ist derzeit, worauf ich zurück fiel, da ich es nicht tun konnte. Ich habe das SQL einfach roh geschrieben, wie du schon sagtest, aber die Hälfte ist abstrahiert und die andere Hälfte roh: D dachte, ZF2 würde es nur innerhalb des Spaltenbereichs erlauben. –