laravel中使用union操作

我们可能需要将两张表联合在一起

不是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');`

    A+
发布日期:2023年09月22日  所属分类:未分类

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: