У меня есть следующая ситуация. Мне нужно сделать запрос, и я не знаю, как вложить подзапросы в DQL.Запрос с подзапросом по Symfony на DQL
У меня есть таблица пользователей. Внутри этого стола есть продавцы и представители. Пользователи имеют:
---- ID,
---- Name
---- Profile (ROLE_REPRESENTATIVE, ROLE_SELLER)
---- Status (1 = DECLINE | 2 = ON_HOLD | 3 = APPROVED)
Пример: Users Таблица
--------- ID ----------- Name ------------------ PROFILE ------------ STATUS ---- REPRESENTATIVE_ID ----
------ 1 -------- Representative_1 ------ ROLE_REPRESENTATIVE ------ 3 ----------- NULL -------------
------ 2 -------- seller_1 -------------- ROLE_SELLER -------------- 3 ------------ 1 ---------------
------ 3 -------- seller_2 -------------- ROLE_SELLER -------------- 3 ------------ 1 ---------------
------ 4 -------- seller_3 -------------- ROLE_SELLER -------------- 2 ------------ 1 ---------------
------ 5 -------- Representative_2 ------ ROLE_REPRESENTATIVE ------ 3 ----------- NULL -------------
------ 6 -------- Representative_3 ------ ROLE_REPRESENTATIVE ------ 3 ----------- NULL -------------
------ 7 -------- seller_4 -------------- ROLE_SELLER -------------- 2 ------------ 5 ---------------
------ 8 -------- seller_5 -------------- ROLE_SELLER -------------- 2 ------------ 5 ---------------
------ 9 -------- seller_6 -------------- ROLE_SELLER -------------- 2 ------------ 5 ---------------
----- 10 -------- seller_7 -------------- ROLE_SELLER -------------- 3 ------------ 1 ---------------
----- 11 -------- seller_8 -------------- ROLE_SELLER -------------- 3 ------------ 1 ---------------
Продавцы имеют представителей (представителей), который представляет собой 1-Н связь между пользователями и пользователями.
Тогда, мне нужно, чтобы получить все представители (ID + имя) и общее количество продавцов, которые не были одобрены (статус = 2) (статус = 2 = ON_HOLD)
Получить Представители
SELECT representatives
FROM AppBundle: User representatives
WHERE
Representatives.profile = 'ROLE_REPRESENTATIVE'
GROUP BY representatives.id
ORDER BY representatives.id DESC
Получить продавцов "в ожидании", чтобы утвердить
SELECT sellers
FROM AppBundle: User sellers
WHERE
Sellers.profile = 'ROLE_SELLER' AND
Sellers.status = 2
GROUP BY sellers.id
ORDER BY sellers.id DESC
Final Я должен знать, как это сделать:
----- ID ----------- Name --------------- TotalSellersOnHold -----
------ 1 -------- Representative_1 ------------- 40 -----------------
------ 5 -------- Representative_2 ------------- 27 -----------------
------ 6 -------- Representative_3 ------------- 12 -----------------
Как этот запрос может быть выполнен в одном запросе?
совершенна. Благодаря!!! – Javier