1

私は次のような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はフィールドの実際の値ではなくテキストを検索することです。それを解決する方法はありますか?

4

2 に答える 2

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');
于 2011-11-17T23:13:09.963 に答える