Ich versuche, eine innere Abfrage und Parameter ohne Erfolg auszuführen, erhalte ich immer:Lehre innere Abfrage eingestellten Parameter
dieseUngültige Parameternummer: Anzahl der gebundenen Variablen stimmt nicht überein Anzahl von Token
ist meine Frage:
SELECT i2
FROM MyBundle:Identity i2
INNER JOIN MyBundle:Property\\Mapped\\Email propertyEmail WITH propertyEmail.identity = i2
INNER JOIN MyBundle:Channel channel WITH propertyEmail.channel = channel
WHERE (
SELECT COUNT(mappedEmail)
FROM MyBundle:Property\\Mapped\\Email mappedEmail
WHERE mappedEmail.identity = i2
AND mappedEmail.channel = :channel
AND mappedEmail.createdAt <= :dateFrom
) > 0
AND IDENTITY(propertyEmail.channel) <> :channel
AND propertyEmail.createdAt <= :dateFrom
GROUP BY i2
Und das ist, wie ich als Unterabfrage setzen:
$innerQuery = $queryBuilder->getEntityManager()->createQuery($query)
->setParameters([
'channel' => $channelId,
'dateFrom' => $dateFrom
])
;
$queryBuilder->andWhere($queryBuilder->expr()->notIn($alias, $innerQuery->getDQL()));
, die den Fehler zurück:
Ungültige Parameternummer: Anzahl der gebundenen Variablen nicht mit Anzahl von Token
Wenn ich die Abfrage als einzelne Abfrage alle richtig funktioniert auszuführen.
Danke für den Vorschlag.
versuchen, die Parameter auf dem letzten Zugabe von Querybuilder NICHT auf dem inneren – Matteo