The database module now select subqueries, which means you can use query builder to write practically any query you like. Let’s take a quick look at some new features:
 Subqueries in conditional statements
1
2
3
4
5
6
7
8
DB::query('select')
    ->table('fairies')
    //WHERE id in (SELECT fairy_id from trees)
    ->where('id','IN',DB::query('select')
            ->fields('fairy_id')
            ->table('trees')
        );
 Subqueries as tables
1
2
3
4
5
6
7
8
9
10
$pixies=DB::query('select')
    ->table('fairies')
    ->where('type','pixie');
DB::query('select')
    //Specifying an alias for the subquery select
    ->table($pixies,'pixies')
    ->where('pixies.id','>',7);
It is also possible to pass subqueries into join() in a similar way
 UNION queries
1
2
3
4
5
6
7
8
$pixies=DB::query('select')
    ->table('fairies')
    ->where('type','pixie');
DB::query('select')
    ->table('fairies')
    ->where('type','fairy')
    ->union($pixies);
 To see more examples check out the updated Database Tutorial.