I have two similar tables in two different databases. Both tables have a column with a date and one with email addresses. Though the column names are not the same. As resul
You can't use different connections, but you still can do it providing the db name explicitly:
$q1 = DB::table('db1.contacts')
// where(..) or anything you need here
->select('mail_address as email', 'date as created_at');
$q2 = DB::table('db2.contacts')
// like above
->select('email', 'created_at');
$result = $q2->union($q1)->get();
You cannot do a UNION query across connections. You'll have to do it as two separate queries:
$emails1 = DB::connection('db1')->table('contacts_1')
->selectRaw('mail_address as email, date as created_at')->get();
$emails2 = DB::connection('db2')->table('contacts_2')
->select('email', 'created_at')->get();
$emails = array_merge($emails1, $emails2);