За чистый и ясный код!

Статьи на тему программирования под веб, используя PHP, MySQL, Jquery и многое другое

Конструирование запроса с использование JOIN в Kohana3

Январь17
Укрась свой сад с помощью разных фигурок, например с помощью фигуры рыбы.

Предстояло мне сформировать запрос с использование 2-х таблиц связанных с помощью конструкции JOIN. Беда была в том, что таблицы имели префикс (test_), который был указан в конфиге БД и к созданным алиасам, указанных таблиц, цеплялся префикс таблицы.

Ниже приведен запрос который был после использования такой конструкции:

DB::select()
                        ->from(array('context_adv_theme', 't'))
                        ->join(array('context_adv', 'a'), 'inner')
                        ->on('t.id', '=', 'a.theme_id')
                        ->where('fl', '=' ,1);
SELECT * FROM `test_context_adv_theme` AS `t`
INNER JOIN `test_context_adv` AS `a` ON (`test_t`.id = `test_a`.theme_id)
WHERE `fl` = 1

как видно в конструкции ON получалась такая запись (`test_t`.id = `test_a`.theme_id), вместо (`t`.id = `a`.theme_id)

для того, чтобы было (`t`.id = `a`.theme_id) необходимо ставить алиасы таблицы в конструкторе запроса ->ON в двойные кавычки, как это показано на нижнем примере:

DB::select()
                        ->from(array('context_adv_theme', 't'))
                        ->join(array('context_adv', 'a'), 'inner')
                        ->on('"t".id', '=', '"a".theme_id')
                        ->where('fl', '=' ,1);
SELECT * FROM `test_context_adv_theme` AS `t`
INNER JOIN `test_context_adv` AS `a` ON (`t`.id = `a`.theme_id)
WHERE `fl` = 1

В помощь тебе, юзер!!!

Статья просмотренна 41229 раз, зашло посетителей 14203

  

Облако тегов

cli csv dump events form Kohana locale models MySQL mysqldump orm PHP tools trigger validate газ газовый счетчик итоги кеширование переменные

Облако тегов плагина WP Cumulus для WordPress требует для просмотра Flash Player 9 или выше.

Я на твиттере!

  • у твиттера тоже бывают перерывы...

Календарь

Январь 2010
Пн Вт Ср Чт Пт Сб Вс
« Дек   Фев »
 123
45678910
11121314151617
18192021222324
25262728293031

Сейчас на сайте