Kohana查询生成器



我正在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搜索文本而不是字段的实际值。有办法解决这个问题吗?

您不加入另一个表的原因是什么?像这样:

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');

你试过DB::expr()吗?

最新更新