Сложный запрос к MySQL в проекте на Yii2, используя ORM ActiveRecord

Есть череда связанных запросов:


SET lc_time_names = 'ru_RU';
SET @interval := DATEDIFF(STR_TO_DATE(CONCAT(YEAR(NOW()) + 1, '-01-01'), '%Y-%m-%d'), CURDATE());
WITH DATESHIFT AS (
    SELECT `id`, `username`, ADDDATE(`birthday`,  @interval) birthday, STR_TO_DATE(CONCAT('2222-', MONTH(`birthday`), '-', DAY(`birthday`)), '%Y-%m-%d')  tmpdate 
    FROM `user` 
    ORDER BY tmpdate DESC LIMIT 3), 
B_DATES AS (
    SELECT `username`, date_format(`birthday`, '%d-%m-%Y') bdate, CONCAT(DAY(`birthday`), ' ', MONTHNAME(`birthday`)) birth_string, STR_TO_DATE(CONCAT('2222-', MONTH(`birthday`), '-', DAY(`birthday`)), '%Y-%m-%d') tmpdate 
    FROM user 
    WHERE id IN (SELECT `id` FROM DATESHIFT) 
    ORDER BY tmpdate)
SELECT `username`, `birth_string` FROM B_DATES;

Задача: обернуть их в конструктор ActiveRecord, либо ActiveQuery с тем, чтобы обеспечить переносимость. В документации сообщества подобные возможности не описываются. Как работать без костылей с конструктом CTE - не понятно. Уважаемые коллеги, прошу помощи. Спасибо!


Ответы (0 шт):