从u_question uq中选择*,用户u 其中uq.asked_by = u.id和ask_by in(从fb_relations中选择u.id. f,用户u其中f.user1 ='515683059' 和u.fb_uid = f.user2)分组依据 asked_by
答案 0 :(得分:1)
这就像是:
$subquery = DB::select('u.id')
->from(array('fb_relations','f'), array('users','u'))
->where('f.user1','=','515683059')
->where('u.fb_uid','=','f.user2');
$results = ORM::factory('user')
->select('uq.*')
->join(array('u_question','uq'))
->on('uq.asked_by','=','users.id')
->where('uq.asked_by','IN',$subquery)
->group_by('asked_by')
->find_all();
我无法保证这一点能够奏效。请注意,ORM模型总是从所属表中选择所有内容(例如表。*),添加"通常" from()所以使用" strict"是一种更好的做法。 JOIN而不是使用from()来指定附加表。
关于子查询,您可以以这种方式构建它们,也可以直接使用字符串Database_Query对象构建它们而不使用查询构建器(在这种情况下我不会使用它)。
您应该阅读docs