public function subquery() { $sql = new \Zend\Db\Sql\Sql($this->adapter); $select = $sql->select()->from('comment'); $selectSub = $sql->select() ->from('comment_vote') ->columns(['negativeVote' => new \Zend\Db\Sql\Expression('COUNT(comment_vote.id)')]) ->where('comment_vote.commentId = comment.id'); $select->columns( [ 'commentId' => 'id', 'comment', 'nagetiveVoteCount' => new \Zend\Db\Sql\Expression('?', [$selectSub]) ] ); $statement = $sql->prepareStatementForSqlObject($select); $comments = $statement->execute(); $resultSet = new \Zend\Db\ResultSet\ResultSet(); $resultSet->initialize($comments); return $resultSet->toArray(); }
Find on stackoverflow.
WICHTIG auch (in $selectSub) die Where Klause als String. Würde man es als Array machen, wäre comment.id die Value …es würde nicht interpretiert als ID der TAbelle comment.