Kohana построитель запросов - PullRequest
1 голос
/ 18 ноября 2011

Я строю запрос в рамках Kohana, который выглядит следующим образом:

DB::select('users.email')->from('users', 'roles_users')->
where('users.id', '=', 'roles_users.user_id')->
and_where('roles_users.role_id', '=', '2');

будет выведено:

SELECT `users`.`email` FROM `users`, `roles_users` 
WHERE `users`.`id` = 'roles_users.user_id' 
AND `roles_users`.`role_id` = '2'

так что моя проблема в том, что kohana помещает ' ' для меня на roles_users.user_id, поэтому mysql ищет текст, а не фактическое значение поля. есть ли способ ее решить?

Ответы [ 2 ]

3 голосов
/ 18 ноября 2011

Есть ли причина, по которой вы не присоединяетесь к другому столу?Вот так:

DB::select('users.email')
->from('users')
->join('roles_users', 'LEFT')
->on('users.id', '=', 'roles_users.user_id')
->where('roles_users.role_id', '=', '2');

Если вам это не нравится, попробуйте

DB::select('users.email')
->from('users', 'roles_users')
->where('users.id', '=', DB::expr('roles_users.user_id'))
->and_where('roles_users.role_id', '=', '2');
2 голосов
/ 18 ноября 2011

Вы пробовали с DB::expr()?

...