FuelPHPでサブクエリ
ORMを使う場合の例は http://fuelphp.jp/docs/1.9/packages/orm/crud.html#/subqueries を参照。
Query Builderを使う場合、Query_Builder_Select::compile()を使うとサブクエリのSQLを文字列にすることが出来る。
上記URLの例をQuery Builderで作成するとこのような感じ。サブクエリのSQL文字列がクオートやバッククオートで囲まれないようにDB::expr()してあげる。
$sub_query = DB::select('author')
->from('articles')
->where('date', '<', time())
->where('draft', '=', 1)
->compile(Database_Connection::instance());
$query = DB::select()
->from('articles')
->where('author', '=', 16)
->or_where('author', DB::expr($sub_query));
$query->execute();