Конвертировать native SQL в DQL с помощью "HAVING" - PullRequest
0 голосов
/ 16 марта 2020

Мне нужно конвертировать эту нативную SQL в DQL. На самом деле, я хочу получить результат массива, такой как:

//result with dql
    array:2 [▼
      0 => Portal {#6179 ▶}
      1 => Portal {#6175 ▶}
    ]

Который не поддерживается родным SQL, я думаю ..

//result with Native SQL code
    array:9 [▼
      0 => array:49 [▶]
      1 => array:49 [▶]
      2 => array:49 [▶]
      3 => array:49 [▶]
      4 => array:49 [▶]
      5 => array:49 [▶]
      6 => array:49 [▶]
      7 => array:49 [▶]
      8 => array:49 [▶]
    ]

Родной SQL Код:

            "SELECT
                   p.*,

                    pr.unlimited as 'unlimited'
                FROM
                   `broadcast_portal` as p INNER JOIN broadcast_portal_registration as pr on p.id=pr.portal_id
                WHERE
                    pr.group_id = 49
                HAVING (unlimited = true or (select MAX(cpl._limit) FROM commercial_portal_limit as cpl INNER JOIN user on cpl.commercial_id=user.id INNER JOIN user_user_group uug ON user.id = uug.user_id WHERE uug.group_id=49 AND cpl.portal_id=p.id) > 0)
                ORDER BY p.name ASC "
        );

        $qb->execute();
        return $qb->fetchAll();
...