Symfony 3.2 создать запрос с 2 подзапросами

В моем проекте Symfony 3.2 я хочу показать все themes которые используются в table1 а также table2 от user_id = 1

Это MySQL-запрос, который прекрасно работает в PhpMyAdmin:

SELECT DISTINCT themes.*
FROM themes
WHERE EXISTS
    (SELECT *
     FROM table1
     WHERE table1.theme_id = themes.id
     AND table1.user_id = 1)
OR EXISTS
    (SELECT *
     FROM table2
     WHERE table2.theme_id = themes.id
     AND table2.user_id = 1)
ORDER BY themes.name;

Проблема в том, что я не мог перевести это для моего ThemeRepository класс в моем проекте... Я попробовал этот код:

public function findAllUsedByUserId($userId) {
    return $this->getEntityManager()
        ->createQuery('
            SELECT DISTINCT t
            FROM AppBundle:Theme t
            WHERE EXISTS
                (SELECT *
                FROM AppBundle:Table1 a
                WHERE a.theme_id = t.id
                AND a.user_id = :userId)
            OR EXISTS
                (SELECT *
                FROM AppBundle:Table2 b
                WHERE b.theme_id = t.id
                AND b.user_id = :userId)
            ORDER BY t.name ASC
        ')
        ->setParameter('userId', $userId)
        ->getResult();
}

Вывод является ошибкой: [Syntax Error] line 0, col 131: Error: Unexpected '*'

Может ли кто-нибудь помочь мне с моим запросом? Заранее спасибо!

0 ответов

Другие вопросы по тегам