処理の順番がおかしい可能性がある
現状
UNION_ALLと同じ
$first = DB::table('users')
->whereNull('first_name')
->get();
$users = DB::table('users')
->whereNull('last_name')
->get()
->union($first);
これだと、$firstと$userがそれぞれget()した形がunion()されるのでUNION ALLと同等になる。
改善
UNIONになる
$first = DB::table('users')
->whereNull('first_name');
$users = DB::table('users')
->whereNull('last_name')
->union($first)
->get();
クエリを持った状態でget()前にunionするため、UNION ALLとならない