laravel查询构建器中的UNION DISTINCT

时间:2015-10-20 13:38:04

标签: laravel laravel-5.1

当我使用$query2->union($query1)时,这是laravel中的结果:

query one ...
union
query two ...

我如何才能获得此查询:

query one ...
union distinct
query two ...

laravel documentation中,我只看到union()unionAll()方法。

1 个答案:

答案 0 :(得分:0)

根据this answerUNION查询定义是一个不同的查询(假设两个结果中的列相同)。 UNION ALL如果存在,则返回重复项。

因此,在Laravel 5.1(至少)中,默认情况下,根据example in the documentation运行联合是不同的:

$first = DB::table('users')
    ->whereNull('first_name');

$users = DB::table('users')
    ->whereNull('last_name')
    ->union($first)
    ->get();

我不会重复that answer关于表现的说法(值得一读),但总的来说,DISTINCTDISTINCT ALL要慢。