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

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

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

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

  

Облако тегов

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

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

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

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

Календарь

Июль 2017
Пн Вт Ср Чт Пт Сб Вс
« Июл    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

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