Как сделать этот запрос правильным в Yii2? - PullRequest
0 голосов
/ 23 ноября 2018

Мне нужно сделать этот запрос с помощью \ yii \ db \ Query ().Как я могу это сделать?У меня есть этот запрос, и он хорошо работает в PHPMyAdmin, но я не могу повторить это с помощью \ yii \ db \ Query ().Это мой SQL-запрос:

SELECT
    `z`.idzadaniya,
    `r`.id
FROM
    `zadaniya` AS `z`
LEFT JOIN
    `result` AS `r`
ON
    `r`.zadaniya_idzadaniya = `z`.idzadaniya AND `r`.created_at IN(
    SELECT
        MAX(`r`.created_at)
    FROM
        `zadaniya` AS `z`
    JOIN
        `result` AS `r`
    ON
        z.idzadaniya = r.zadaniya_idzadaniya
    GROUP BY
        `z`.idzadaniya
)

Это запрос, который я хочу сделать, но я не могу реализовать его с помощью \ yii \ db \ Query ().Запрос возвращает не все, что мне нужно.Он не возвращает нулевые значения, а не текущий $ subQuery.

 $subQuery = (new \yii\db\Query())->select(['max(r.created_at)'])->from('zadaniya AS z');

    return $rows = (new \yii\db\Query())
        ->select(['z.idzadaniya','r.id'])->from('zadaniya AS z')
        ->join('LEFT JOIN', 'result AS r', 'r.zadaniya_idzadaniya = z.idzadaniya')
        ->andWhere(['result.created_at'=>$subQuery])
        ->join('LEFT JOIN', 'result', 'z.idzadaniya = result.zadaniya_idzadaniya')
        ->groupBy('z.idzadaniya')
        ->all();

Что я хочу получить.Смотри картинку 1. (правильно) SQL Query return this (correct)

Что я получу.Смотри картинку 2. Не подходит для меня yii\db\Query return (not correct for me)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...