我正在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搜索文本而不是字段的实际值。有什么方法可以解决它吗?
答案 0 :(得分:3)
你有没有理由不加入另一张桌子?像那样:
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');
答案 1 :(得分:2)
您是否尝试过DB::expr()
?