Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

query builder, join, id
http://forum.kohanaframework.su/viewtopic.php?f=33&t=255
Страница 1 из 1

Автор:  borodatych [ 24 июл 2012, 01:35 ]
Заголовок сообщения:  query builder, join, id

Доброго времени суток.
В query builder делаю join таблиц:
Код:
$query = DB::select()->from(table1)->join(table2)->on('table1.columname', '=', 'table2.id')

У обоих таблиц есть колонки с id.
Нужно вести id первой таблицы. Kohana ругается как на echo $data['table1.id'], так и на echo $data['table2.id']
Если просто echo $data['id'], то получаю id table2.
Как мне получить id table1?

Автор:  mamahtehok [ 24 июл 2012, 01:59 ]
Заголовок сообщения:  Re: query builder, join, id

а var_dump($data) что выдает?

Автор:  borodatych [ 24 июл 2012, 02:26 ]
Заголовок сообщения:  Re: query builder, join, id

mamahtehok писал(а):
а var_dump($data) что выдает?

Цитата:
array(32) { ["ID"]=> string(1) "Значение из table2"

А суммарно элементов должно быть 33 (поштучно посчитал с обоих таблиц).
Теряется именно id с table1

Автор:  eBasher [ 24 июл 2012, 09:42 ]
Заголовок сообщения:  Re: query builder, join, id

Надо эти использовать..эээ алиасы или как их там. Только вот забыл как в билдере они пишутся.

Автор:  AmberLEX [ 25 июл 2012, 08:40 ]
Заголовок сообщения:  Re: query builder, join, id

Алиасы как-то так пишутся
Код:
ORM::factory('products')
    ->select('products.*',
             array('pt.title', 'title_1'),
             array('pt.description', 'description_1')
             )
    ->join(array('products_translations', 'pt'), 'LEFT OUTER')
    ->on('products.id', '=', DB::expr("pt.product_id AND pt.lang_id = '".I18n::lang()."'"))
 

Автор:  borodatych [ 01 авг 2012, 07:10 ]
Заголовок сообщения:  Re: query builder, join, id

Я использую Query Builder, верен ли запрос?
Код:
DB::select('table1.*', 'table2.*', array('table1.id', 'table1_id'), array('table2.id', 'table2_id'))

..нашел свою ошибку, запрос верный, вдруг кто искать будет..

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/