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

Статьи на тему программирования под веб, используя 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

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

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

  

Облако тегов

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

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

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

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

Календарь

Сентябрь 2018
Пн Вт Ср Чт Пт Сб Вс
« Июл    
 12
3456789
10111213141516
17181920212223
24252627282930

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