我们可能需要将两张表联合在一起
不是left join,而是union
在laravel中如何实现union
```
1.直接在db在查询构造器中实现
查询语句构造器也提供了一个快捷的方法来「合并」两个查找。
例如,你可以先创建一个初始查找,然后使用 union 方法将它与第二个查找进行合并:
$first = DB::table('users')
->whereNull('first_name');
$users = DB::table('users')
->whereNull('last_name')
->union($first)
->get();
2.Eloquent 进行 Union
该文章就是介绍这个
$query1 = User::select (
'id',
'name',
\DB::raw ( '"first_name" AS name' )
)->where ( 'name', 'LIKE', '%zongscan%' );
$query2 = User1::select (
'id',
'name',
\DB::raw ( '"two_name" AS name' )
)->where ( 'name', 'LIKE', '%zongcan%' );
$query2->union ( $query1 )->get();
ps:
UNION 操作,需要确保从所有查询返回的字段是相同的,否则就会出现错误
```
如何两张表字段有差异
可能构造不存在的字段
```
$list = $list->select('*',\DB::raw('0 as dismiss_date,0 as operator_id'));
```
然后在union
如何两张表结构一样,但是字段的字符集不一样也会出错
可以在迁移文件的时候设置编码
`$table->string('last_login_token')->nullable()->comment('登录token')->collation('utf8_general_ci');`