当我使用$query2->union($query1)
时,这是laravel中的结果:
query one ...
union
query two ...
我如何才能获得此查询:
query one ...
union distinct
query two ...
在laravel documentation中,我只看到union()
和unionAll()
方法。
答案 0 :(得分:0)
根据this answer,UNION
查询定义是一个不同的查询(假设两个结果中的列相同)。 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关于表现的说法(值得一读),但总的来说,DISTINCT
比DISTINCT ALL
要慢。