@ask0generator

Kohana framework — multiple joins of subqueries in query builder — как написать запрос?

Каким образом написать query builder запрос, чтобы он генерировал запрос такого вида:
SELECT * FROM (
                    (SELECT id as locale_id, value as locale FROM a3_locale) t1
                        LEFT JOIN
                    (SELECT locale_id AS loc_id, var_id, value FROM a3_var_locale WHERE var_id = 1) t2
                        ON t2.loc_id = t1.locale_id
            )


Делаю так:
$query_locales = DB::select( array('value', 'locale'), array ('id', 'locale_id') )
            ->from("{$pre}locale");

        $query_var_locales = DB::select( array('locale_id', 'loc_id'), 'value', 'var_id' )
            ->from("{$pre}var_locale")
            ->where('var_id', '=', $id);

        $query_locales_vars_join = DB::select()
            ->from(array($query_locales, "t1"))
            ->join(array($query_var_locales, "t2"), "LEFT")
            ->on("t2.locale_id", "=", "t1.loc_id");

Возвращает неправильно сгенерированный:

SELECT * FROM <b>['(']</b>
                    (SELECT `value` AS `locale`, `id` AS `locale_id` FROM `a3_locale`) AS `t1`
                        LEFT JOIN
                    (SELECT `locale_id` AS `loc_id`, `value`, `var_id` FROM `a3_var_locale` WHERE `var_id` = 3) AS `t2`
                        ON
                    (`t2`.`locale_id` = `t1`.`loc_id`)
<b>[')']</b>

В "[ ]" я отобразил то, чего не хватает в запросе, чтобы он был рабочим.
  • Вопрос задан
  • 3208 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы