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

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

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

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

  

Облако тегов

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

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

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

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

Календарь

Июль 2024
Пн Вт Ср Чт Пт Сб Вс
« Июл    
1234567
891011121314
15161718192021
22232425262728
293031  

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